我有一个嵌套资源,如下所示: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
请告知。
答案 0 :(得分:2)
如果您想确保用户在提交此表单时上传照片,那么您应该在Photo
模型上添加验证,如下所示:
validates_attachment_presence :attached_photo
然后,如果用户没有上传照片,表单将重新呈现,告诉用户上传照片。
如果photo
参数不存在,您还需要使用此强参数代码以确保没有错误:
def photo_params
params.require(:photo).permit(:title, :attached_photo) if params[:photo]
end