ID当我想用建立一个多到多通过关联,我得到在我的控制器以下错误:钢轨3.1 - 未知属性:上构建
未知属性:fte_report_option_id
在我的控制器:
DEF edit_clients_reports
@fte_report_option = FteReportOption.find(PARAMS [:ID])
@ fte_report_option.fte_report_client_options.build
末
在我的第一个模型,我有:
类FteReportOption <的ActiveRecord :: Base的
的has_many:fte_report_client_options,:依赖=> :destroy
has_many:clients,:through =>:fte_report_client_options
end
以我第二模型:
类FteReportClientOption <的ActiveRecord ::基地
self.primary_key = “client_report_id”belongs_to的:fte_report_option,:foreign_key =>:option_id,:CLASS_NAME =>“FteReportOption” belongs_to:client,:foreign_key =>:client_id,:class_name =>“Client”
end
而且我的第三个模型:
类客户端<的ActiveRecord :: Base的
set_primary_key “CLIENT_ID”的has_many:fte_report_client_options,:依赖=>:摧毁
的has_many:fte_report_options,:通过=>:fte_report_client_options
在我的连接表迁移中,我有:
create_table:fte_report_client_options,:primary_key =>“client_report_id”,:force => true do | t |
t.integer:option_id
t.integer:CLIENT_ID
t.timestamps
末
有没有人知道发生了什么情况?
感谢您的帮助
也许我们应该通过审查,您已经发布的代码开始。 在'FteReportClientOption'中我们有'self.primary_key =“client_report_id”'这没有任何意义。你的意思是'set_primary_key'? 然后,在迁移中,将主键设置为表中不存在的列。 这些问题可能会影响Rails如何尝试“猜测”您的属性名称。 总而言之 - 如果你没有真正强有力的理由,我会强烈要求你使用Rails标准的主键。 – Jesper