2

私のモデルには、trueまたはfalseの「admin」フィールドが含まれています。悪意のあるユーザーがコントローラーをだましてユーザーに「admin」権限を与えることを望まないため、「attr_accessible」にはありません。

モデルに管理者としてログインしている場合は、ユーザーのレコードを更新して、管理者を作成または削除できるようにしたいからです。だから...adminにattr_accessibleがないので、そうすることができません。

多分それはそれを見る正しい方法ではありません。そのような場合を処理する正しい方法は何ですか?

4

1 に答える 1

4

Rails 3.2には、説明していることを実行できる機能が追加されました。モデルでこれを定義するだけです。

attr_accessible accessible_attributes + [:admin], :as => :admin

次に、admin属性を割り当てるコントローラーで、次のようにします。

User.new(params[:user], :as => :admin)

また

user.update_attributes(params[:user], :as => :admin)

attr_accessible呼び出しの前にリストされているすべての属性は、オプション:as => :adminをサポートするActiveRecord呼び出しのアクセス可能な属性になり:as => :adminます。

その定義を呼び出さなかった場合はaccessible_attributes、そこで定義された属性のみにアクセスできます。

于 2012-07-03T01:35:24.767 に答える