1

attr_accessible の使用は、オンまたはオフであるため、十分ではありません。

一部のモデルには、ユーザー フォームと管理フォームがあります。管理者にとって、一括割り当てできるようにする必要がある属性は、attr_accessible にある必要がありますが、これは、通常のユーザーが悪意を持ってこれらのパラメーターを挿入できることを意味します。管理者側ですべてを手動で割り当て、通常のユーザーが変更できる属性に attr_accessible を割り当てるのは大変な作業のようです。

この問題に対するレール中心の標準的な解決策はありますか? もしかして宝石?

私は次のようなものを想定しています:

model.update_attributes_with_user(params[:model], user)
4

2 に答える 2

1

コントローラーでの一括割り当て可能な属性の設定に関するこの公式ブログ投稿を読むことをお勧めします: http://weblog.rubyonrails.org/2012/3/21/strong-parameters/

また、いわゆるスライスパターン (またはその抽出) の実装に役立つ gem へのリンクも示しています: https://github.com/rails/strong_parameters

このソリューションを使用すると、users コントローラーと admin_users コントローラーで編集可能な属性を別々に指定できます。

于 2012-07-13T16:48:58.820 に答える
1

:asのオプションが必要ですattr_accessible

詳細と例については、この Rails docを参照してください。

ただし、簡単な例として(リンクから):

 attr_accessible :name, :credit_rating, :as => :admin
 customer.assign_attributes({ "name" => "David", ... }, :as => :admin)
于 2012-07-13T16:45:11.947 に答える