在Rails中更新属性4

时间:2014-04-08 14:24:25

标签: ruby-on-rails ruby ruby-on-rails-4 strong-parameters

我正在寻找有关允许的参数和更新记录的一些说明。

我知道白名单属性现在在控制器中完成,我在控制器的底部创建了一个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))

但这不起作用

任何帮助表示赞赏

由于

2 个答案:

答案 0 :(得分:3)

您应该只使用gallery_params方法:

if @gallery.update(gallery_params)

答案 1 :(得分:1)

单个属性不需要单独的权限,只需使用gallery_params

即可