rails 3测试错误:Mysql2::错误:未知列



伙计们,当我按照http://guides.rubyonrails.org/testing.html,上面写着:

test_the_truth(教室类型测试):ActiveRecord::StatementInvalid:Mysql2::错误:"字段列表"中的未知列"类型":INSERT INTO classroom_typestypememocreated_atupdated_atid)VALUES("MyString"、"MyString"、"2011-05-31 08:40:54"、"2011-05-31 08-40:54,980190962)

我很困惑,我的classroom_types表中没有列,为什么会出现这样的错误?有人能帮我吗?非常感谢!

以下是我的模型和关系:

ClassroomType型号:

class ClassroomType < ActiveRecord::Base
  has_many :classrooms
end

课堂模式:

class Classroom < ActiveRecord::Base
   belongs_to :classroom_type
   belongs_to :teaching_building
end

教学楼模型:

class TeachingBuilding < ActiveRecord::Base
  has_many :classrooms
end

以下是相应的表格:

教室:

  • id
  • 教室_no
  • 教室名称
  • classroom_type_id
  • teaching_building_id

classroom_types:

  • id
  • 名称
  • 备忘录

教学_建筑:

  • id
  • t_no
  • 名称

我想问题出在列命名上。当rails进行多态关联时,它会使用id联接表,并从xxx_type列中选择联接的表。我可以想象,如果您在数据库名称和列名中将"type"替换为(例如)"kind",您的问题就会消失。

Samuel

我也遇到过类似的问题,但解决了是这样的

  1. 转到mysql本地服务器
  2. 然后将mysql列名更改为与belong_to对应的模型
  3. 使用"ALTER TABLE tablename CHANGE oldname newname VARCHAR (10) ;"
  4. 这是因为rails将默认值创建为user_id

我认为问题出在列命名上,请检查数据库表的列名及其类型,并根据错误消息设置

相关内容

  • 没有找到相关文章

最新更新