伙计们,当我按照http://guides.rubyonrails.org/testing.html,上面写着:
test_the_truth(教室类型测试):ActiveRecord::StatementInvalid:Mysql2::错误:"字段列表"中的未知列"类型":INSERT INTO
classroom_types
(type
、memo
、created_at
、updated_at
、id
)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
我也遇到过类似的问题,但解决了是这样的
- 转到mysql本地服务器
- 然后将mysql列名更改为与belong_to对应的模型
- 使用
"ALTER TABLE tablename CHANGE oldname newname VARCHAR (10) ;"
- 这是因为rails将默认值创建为user_id
我认为问题出在列命名上,请检查数据库表的列名及其类型,并根据错误消息设置