我希望对允许的参数进行一些澄清,并更新记录。
我知道白名单属性现在是在控制器中完成的,我在控制器的底部创建了一个私有方法。例如:
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条答案
按热度按时间yb3bgrhw1#
您只需使用
gallery_params
方法即可:ruyhziif2#
不需要为各个属性设置单独的权限,只需使用
gallery_params
即可