我有一个has_many关联的多选框. params进来如下:
- foo_ids: ["1","2","3"]
使用强参数,我不允许这个属性,因为我想自己授权,所以人们不能只是把它们想要的东西放进去.
- def update
- bar.foos = authorized_foos
- bar.update(baz_params)
- respond_with bar
- end
- private
- def authorized_foos
- foos = Foo.find(params[:baz][:foo_ids])
- foos.each do |foo|
- authorize foo,:manage?
- end
- end
这种方法将迫使我找到所有的foos,循环遍历它们,并单独授权每个foos.是否有更简单的方法来管理has_many授权,最好是使用Pundit gem?