我正在寻找有关允许的参数和更新记录的一些说明。
我知道白名单属性现在在控制器中完成,我在控制器的底部创建了一个provate方法,例如
private
def gallery_params
params.require(:gallery).permit(:id, :title, :overview, :category_id, gallery_images_attributes: [:id, :gallery_id, :gallery_category_id, :photo, :_destroy])
end
如果我希望能够在我的创建动作中访问这些属性,我可以像这样传递它们
@gallery = Gallery.new(gallery_params)
然而,我对如何通过我的更新方法允许相同的参数感到困惑
def update
@gallery = Gallery.find(params[:id])
if @gallery.update_attributes(params[:gallery])
redirect_to root_path, notice: 'Successfully updated Gallery'
else
render action: 'edit'
end
end
我试过了
@gallery.update_attributes(params[:gallery].permit(gallery_params))
但这不起作用
任何帮助表示赞赏
由于
答案 0 :(得分:3)
您应该只使用gallery_params
方法:
if @gallery.update(gallery_params)
答案 1 :(得分:1)
单个属性不需要单独的权限,只需使用gallery_params