2010-12-10 8 views

答えて

12

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ファイルに追加してみてください。

+0

これも私のために働くself.include_root_in_json = false、しかし、ActiveModel :: Base.include_root_in_json = falseは、定義されていないようなエラーを引き起こします。 (私はRails 3を使用しています) –

+0

config/environment.rbに次の行を入れてみることができます ActiveRecord :: Base.include_root_in_json = false – ranendra

+2

私はconfig/initializers/active_record.rbに ' ActiveRecord :: Base.include_root_in_json = false'それは私のためにうまくいく(私はレール3.0.4を使用しています)。あなたが覚えておかなければならないことは、イニシャライザを変更した場合、サーバを再起動するかコンソールを再ロードして有効にする必要があることです。 –

1

は、設定/初期化子/ defaults.rb

5

のように私は(これは、レールのそれ以降のバージョンのが、私のために真であるかどうかわからないんだけど、初期化子で変数を設定することなかれ良いアイデアですだから、

ActiveRecord::Base.include_root_in_json = true 

あなたが別の場所で、この設定を設定しようとした場合、それは可能性がある:2.3.5気圧)を実行すると、それに設定された/config/initializers/new_rails_defaults.rbでこの設定のための宣言がすでにありましたオーバーライドされる。

+0

「config/initializers/new_rails_defaults.rb」で「true」を「false」に変更すると+1が動作します。 – maerics

1

は、私はあなたがconfigにはActiveRecord :: Base.include_root_in_json = falseを設定すべきだと思う/ application.rb

ないActiveModel ::ベース

のRails 3.2.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 
0

次のコメントを解除することができ、 "設定/初期化子/ wrap_elements.rb" に:

ActiveSupport.on_load(:active_record) do 
self.include_root_in_json = true 
end 
関連する問題