すべてのRoRモデルでinclude_root_in_jsonをfalseに設定するにはどうすればよいですか?すべてのRoRモデルでinclude_root_in_jsonをfalseに設定するにはどうすればよいですか?
私はapplication.rb内にActiveModel :: Base.include_root_in_json = falseを設定しようとしましたが、効果はありません。デフォルトのシステム全体の設定については
すべてのRoRモデルでinclude_root_in_jsonをfalseに設定するにはどうすればよいですか?すべてのRoRモデルでinclude_root_in_jsonをfalseに設定するにはどうすればよいですか?
私はapplication.rb内にActiveModel :: Base.include_root_in_json = falseを設定しようとしましたが、効果はありません。デフォルトのシステム全体の設定については
Model.to_json方法は、モデルを表す戻りにJSON文字列を使用し、私は、モデル自体に self.include_root_in_json =偽を使用しています。
しかし、アプリケーション全体のためにあなたは、初期化子でActiveModel :: Base.include_root_in_json =偽を設定してみてくださいすることができます。[編集これは動作しません。]
[編集] はActiveRecord :: Base.include_root_in_json = trueこの行をconfig/environment.rbファイルに追加してみてください。
は、設定/初期化子/ defaults.rb
のように私は(これは、レールのそれ以降のバージョンのが、私のために真であるかどうかわからないんだけど、初期化子で変数を設定することなかれ良いアイデアですだから、
ActiveRecord::Base.include_root_in_json = true
あなたが別の場所で、この設定を設定しようとした場合、それは可能性がある:2.3.5気圧)を実行すると、それに設定された/config/initializers/new_rails_defaults.rbでこの設定のための宣言がすでにありましたオーバーライドされる。
「config/initializers/new_rails_defaults.rb」で「true」を「false」に変更すると+1が動作します。 – maerics
は、私はあなたがconfigにはActiveRecord :: Base.include_root_in_json = falseを設定すべきだと思う/ application.rb
ないActiveModel ::ベース
のRails 3.2.2でが、これはすでに初期化子に設定されています。
--- --- config/initializers/wrap_parameters.rb
のRails 4で
# Disable root element in JSON by default.
ActiveSupport.on_load(:active_record) do
self.include_root_in_json = false
end
次のコメントを解除することができ、 "設定/初期化子/ wrap_elements.rb" に:
ActiveSupport.on_load(:active_record) do
self.include_root_in_json = true
end
これも私のために働くself.include_root_in_json = false、しかし、ActiveModel :: Base.include_root_in_json = falseは、定義されていないようなエラーを引き起こします。 (私はRails 3を使用しています) –
config/environment.rbに次の行を入れてみることができます ActiveRecord :: Base.include_root_in_json = false – ranendra
私はconfig/initializers/active_record.rbに ' ActiveRecord :: Base.include_root_in_json = false'それは私のためにうまくいく(私はレール3.0.4を使用しています)。あなたが覚えておかなければならないことは、イニシャライザを変更した場合、サーバを再起動するかコンソールを再ロードして有効にする必要があることです。 –