Rails 4 Controller上的composite_primary_keys

时间:2014-06-02 13:42:55

标签: ruby-on-rails ruby gem composite

我正在尝试在我的应用程序中使用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”}

我做错了什么?

2 个答案:

答案 0 :(得分:2)

params[:id]是一个字符串 - 您需要从中创建一个数组:

@enterprise = Enterprise.find(params[:id].split(',').map(&:to_i))

答案 1 :(得分:2)

复合主键支持字符串参数以查找对象。问题是你不应该在主键之间留出空间。所以你的参数应该是这样的,

params => {"id" => "1,1"}
@enterprise = Enterprise.find(params[:id])

试试这个,它应该有效。