Rails 4强参数嵌套资源

时间:2013-10-13 16:42:44

标签: ruby-on-rails strong-parameters

我有一个嵌套资源,如下所示:user / 1 / photos / new

resources :users, only: [] do
  resources :photos, except: [:show]
end

我的form_for如下所示:

= form_for([@user, @photo], html: { multipart: true }) do |f|

  .inputs
    = f.file_field :attached_photo

  .actions
    = f.submit :submit

我相信我遇到的问题是参数很强:

   def photo_params
      params.require(:photo).permit(:title, :attached_photo)
    end

当我点击表单上的提交按钮时,我收到以下错误:

ActionController :: PhotosMtroller中的ParameterMissing #create 未找到参数:照片

我使用Paperclip,所以在模型中我有:

has_attached_file :attached_photo

请告知。

1 个答案:

答案 0 :(得分:2)

如果您想确保用户在提交此表单时上传照片,那么您应该在Photo模型上添加验证,如下所示:

validates_attachment_presence :attached_photo

然后,如果用户没有上传照片,表单将重新呈现,告诉用户上传照片。

如果photo参数不存在,您还需要使用此强参数代码以确保没有错误:

def photo_params
  params.require(:photo).permit(:title, :attached_photo) if params[:photo]
end