这是我的问题:
我有2个模型,Competition
和Competitiontype
与belongs_to
/ has_many
关系相关联。尝试转换Michael Hartl的优秀教程(使用用户/微信),我成功地测试了我的Competition
模型在构建它时是否有效:
@competition = Competition.new(name: "Test", competitiontype_id: @competition_type.id)
在模型测试中。
但是当我尝试使用以下方式更加“惯用正确”时:
@competition = @competition_type.competitions.build(name: "Test")
我收到有关'未知属性competition_type_id'的错误 我有一种感觉,我正在与下划线混淆,但两种配方应该是等价的。
有关我如何纠正的任何线索?
这是一个非常特别难以用几个关键词来表达的问题,如果已经在其他地方谈过这个问题,我真的很抱歉(我没有找到)。
答案 0 :(得分:0)
问题在于competitiontype_id
输入错误而没有下划线。它应该是competition_type_id
。这可以从第一个代码
@competition = Competition.new(name: "Test", competitiontype_id: @competition_type.id)
因此,在搜索属于competition_type的比赛时无法找到它。
只需将列competitiontype_id
重命名为competition_type_id
,然后重构发布的第一个使用下划线格式的代码段。