ruby 更新Rails 4中的属性

h5qlskok  于 2022-11-04  发布在  Ruby
关注(0)|答案(2)|浏览(147)

我希望对允许的参数进行一些澄清,并更新记录。
我知道白名单属性现在是在控制器中完成的,我在控制器的底部创建了一个私有方法。例如:

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))

但那不起作用。

yb3bgrhw

yb3bgrhw1#

您只需使用gallery_params方法即可:

if @gallery.update(gallery_params)
ruyhziif

ruyhziif2#

不需要为各个属性设置单独的权限,只需使用gallery_params即可

相关问题