簡単な部分:
保護された属性を持つモデルがあり、管理者のみがアクセスできるアクション、すべての属性を強制的に割り当てる方法があるため、次のようなことをする必要はありません:
@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])
…
難しい部分:
多くの保護された属性と複数のタイプのユーザーを持つモデルがあり、保護されていない属性のみを割り当てることができるモデル、保護された属性の一部のみを変更できるモデル、すべての属性を変更できるモデルがあります。この場合、車輪を再発明することなく、小さくて読みやすいコードを書くにはどうすればよいでしょうか?