我正在尝试在我的应用程序中使用composite_primary_keys
gem。
我制作了具有“相关”和“分支”属性的“企业”模型。那两个是我的复合PK。
class Enterprise < ActiveRecord::Base
self.primary_key = :related, :branch
end
使用rails控制台,我可以毫无问题地使用e = Enterprise.find([1,1])
找到我的第一个Entreprise。
问题是:我不能让它在我的控制器上工作......
我的节目动作,例如:
@enterprise = Enterprise.find(params[:id])
它给了我错误:
找不到'related,branch'= 1,1
的企业参数:{“id”=&gt; “1,1”}
我做错了什么?
答案 0 :(得分:2)
params[:id]
是一个字符串 - 您需要从中创建一个数组:
@enterprise = Enterprise.find(params[:id].split(',').map(&:to_i))
答案 1 :(得分:2)
复合主键支持字符串参数以查找对象。问题是你不应该在主键之间留出空间。所以你的参数应该是这样的,
params => {"id" => "1,1"}
@enterprise = Enterprise.find(params[:id])
试试这个,它应该有效。