Rails - 在belongs_to关系中引用带下划线的模型的id

时间:2015-08-22 15:43:38

标签: ruby-on-rails

这是我的问题: 我有2个模型,CompetitionCompetitiontypebelongs_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'的错误 我有一种感觉,我正在与下划线混淆,但两种配方应该是等价的。

有关我如何纠正的任何线索?

这是一个非常特别难以用几个关键词来表达的问题,如果已经在其他地方谈过这个问题,我真的很抱歉(我没有找到)。

1 个答案:

答案 0 :(得分:0)

问题在于competitiontype_id输入错误而没有下划线。它应该是competition_type_id。这可以从第一个代码

中看出
@competition = Competition.new(name: "Test", competitiontype_id: @competition_type.id)

因此,在搜索属于competition_type的比赛时无法找到它。

只需将列competitiontype_id重命名为competition_type_id,然后重构发布的第一个使用下划线格式的代码段。