简单的部分:
我有带有受保护属性的模型,并且我有只能由管理员访问的操作,如何强制分配所有属性,所以我不需要做这样的事情:
@post = Post.find(params[:id])
if params[:post].is_a?(Hash) && params[:post][:published]
@post.published = params[:post].delete(:published) # delete is to skip warning about protected attribute assignment in update_attributes
end
if @order.update_attributes(params[:post])
…
较难的部分:
我的模型有很多受保护的属性和多种类型的用户,其中一些只能分配不受保护的属性,有些只能更改部分受保护的属性,有些可以更改所有属性。在这种情况下如何编写小的可读代码而不重新发明轮子?