Rails:如何在控制器中访问子模型参数?

时间:2013-02-20 22:05:56

标签: ruby-on-rails ruby

我有两个模型 submissionupload其中:

#Submission.rb
attr_accessible :id, :photo_id, :uploads_attributes
has_many :uploads, :dependent => :destroy
accepts_nested_attributes_for :uploads, :allow_destroy => true

#Upload.rb:
attr_accessible :id,:photo_type_id    
belongs_to :submission

在我的submissions_controller.rb我可以通过以下方式访问photo_id

params[:submission][:photo_id]

但是我不知道如何访问其子模型的photo_type_id

我试过

params[:uploads_attributes][0][:package_type_id]

但它不起作用,ig给了我:

NoMethodError (undefined method `[]' for nil:NilClass):

在我看来页面来源我有:

name="submission[photo_id]"

**in fields_for:**

name="submission[uploads_attributes][0][photo_type_id]"

知道应该改变什么?

1 个答案:

答案 0 :(得分:2)

在这里找到答案:

How to access nested params

就我而言,我用过:

params[:submission][:uploads_attributes]["0"][:photo_type_id]

只需将[0]更改为["0"]

即可