2010-12-10 26 views

cevap

12

Model.to_json yöntemi döner modeli temsil eden bir JSON dizesi kullanılır ve bir modelinin kendisinde yanlış self.include_root_in_json = kullandık.

Ama bütün uygulama için size ayarı deneyebilirsiniz ActiveModel :: Base.include_root_in_json bir in başlatıcısı = false. [Bu işe yaramazsa düzenlemek.]

[değiştir] ActiveRecord :: Base.include_root_in_json = true, bu satırı config/environment.rb dosyasına eklemeyi deneyin.

+0

bu da benim için çalışıyor self.include_root_in_json = false, ancak ActiveModel :: Base.include_root_in_json = false, tanımlanmamış gibi bir hataya neden olur. (Rails 3 kullanıyorum) –

+0

Aşağıdaki satırı config/environment.rb'ye koymayı deneyebilir misiniz? ActiveRecord :: Base.include_root_in_json = false – ranendra

+2

Yapılandırma/başlatıcılar/active_record.rb dosyasında bir başlatıcı var. ActiveRecord :: Base.include_root_in_json = false' ve benim için iyi çalışıyor (Rails 3.0.4 kullanıyorum). Hatırlamak zorunda olduğunuz bir şey (beni yakalamak için kullanılır), bir başlatıcıyı değiştirirseniz, sunucunuzu yeniden başlatmanız veya etkinleşmesi için sunucunuzu yeniden yüklemeniz gerekir. –

1

config/başlatıcıları gibi başlatıcılar değişkeni ayarlamak için alway iyi bir fikir,/defaults.rb

5

bu rayların sonraki sürümleri için geçerlidir emin değilim ama benim için (olan Yani sonra başka bir yerde bu ayarı o olabilir ayarlamaya çalışırsanız

ActiveRecord::Base.include_root_in_json = true 

: 2.3.5 atm çalıştıran) zaten olarak ayarlandı /config/initializers/new_rails_defaults.rb bu ayar için deklarasyon vardı geçersiz kılınmış olmak.

+0

+1, "true" ifadesini "config/initializers/new_rails_defaults.rb" öğesinde "false" olarak değiştirerek bana çalışır. – maerics

1

Sana config ActiveRecord :: Base.include_root_in_json = false set gerektiğini düşünüyorum/application.rb

değil ActiveModel :: Baz

Raylar 3.2.2 Açık
2

, bu zaten başlatıcıları ayarlanır:

--- config/initializers/wrap_parameters.rb --- "config/başlatıcıları/wrap_elements.rb" in Raylar 4 At

# Disable root element in JSON by default. 
ActiveSupport.on_load(:active_record) do 
    self.include_root_in_json = false 
end 
0

aşağıdaki uncomment,:

ActiveSupport.on_load(:active_record) do 
self.include_root_in_json = true 
end 
İlgili konular