2013-08-06 8 views

答えて

4

「無効」にすると、Rails 3スタイルのattr_accessible行に戻ってしまうことになります。

protected_attributes gemを使用してください。

39

属性保護をオフにすることは、ほとんど常に悪い考えです。道のうちその義務ノートで

は、ここでそれをオフにする方法は次のとおりです。

config.action_controller.permit_all_parameters = true 

プレイスには、このことができます。もちろん、config/application.rb

+0

これを試してみましたが、うまくいかなかった私(Rails 4.0.0アプリで)。 – Batkins

+2

私のために働いた。合意 - それは一般的に悪い考えですが、私のユースケースは管理者が何かを変更できる管理サイトです。 – Zubin

+1

それは私のために働いた。 Applicationクラス内にこの行を置き、HTTPサーバーを再起動してください。 – Guildenstern70

-2

に!強力なパラメータの公式ドキュメント(https://github.com/rails/strong_parameters)によると、あなたはあなたのconfig/application.rbにコードの下に追加することによって無効にすることができます。

config.active_record.whitelist_attributes = false 

それは私が私にこの問題に遭遇したレール3.2

+1

これはprotected_attributesを無効にすることです – brauliobo

6

に私の作品Stripeのウェブフックのすべてのパラメータを保存しようとしていました。

単一のインスタンスにすべてのパラメータを許可する場合は、initializeメソッドに渡す前にparamsオブジェクトで#to_hashを呼び出すことができます。

例:

@my_object = MyObject.new(params[:my_object].to_hash) 
0

あなたがチェックアウトパッチを適用することができ、あなたのアプリケーションのためにチェックされて禁止された属性を停止する。..

例えば

設定/初期化子に次のコードを入れて/ disable_strong_parameters.rb

module ActiveModel 
    module ForbiddenAttributesProtection 
    protected 
     def sanitize_for_mass_assignment(attributes) 
      attributes 
     end 
     alias :sanitize_forbidden_attributes :sanitize_for_mass_assignment 
    end 
end 
関連する問題