كيفية الوصول إلى ': HAS_MANY: على الرغم من "انضم إلى بيانات الجدول عند استخدام TO_JSON؟
-
26-09-2019 - |
سؤال
لدي ثلاثة نماذج (مبسطة هنا):
class Child < ActiveRecord::Base
has_many :childviews, :dependent => :nullify
has_many :observations, :through => :childviews
end
class Childview < ActiveRecord::Base
belongs_to :observation
belongs_to :child
end
class Observation < ActiveRecord::Base
has_many :childviews, :dependent => :nullify
has_many :children, :through => :childviews
end
أنا أرسل هذا إلى بعض JavaScript باستخدام طريقة To_json مثل هذا:
render :layout => false , :json => @child.to_json(
:include => {
:observations => {
:include => :photos,
:methods => [:key, :title, :subtitle]
}
},
:except => [:password]
)
هذا يعمل تماما. يتم استرداد الملاحظات بشكل جيد "من خلال" جدول الانضمام (childviews).
لكن, ، أريد أيضًا الحصول على البيانات التي تقع في طاولة JOONDVIES ؛ على وجه التحديد قيمة "الاحتياجات _edit".
لا يمكنني معرفة كيفية الحصول على هذه البيانات في مكالمة TO_JSON.
هل يستطيع أي أحد مساعدتي؟ شكرا كثيرا مسبقا.
القرآن
المحلول
لست متأكدا ، ولكن لا ينبغي لهذا العمل؟
@child.to_json(
:include => {
:observations => {
:include => :photos,
:methods => [:key, :title, :subtitle]
},
:childviews => { :only => :needs_edit }
},
:except => [:password]
)
تحرير: قد ينجح هذا أيضًا ، لأن childviews تنتمي_ إلى الإفراط في الإفراط:
@child.to_json(
:include => {
:observations => {
:include => { :photos, :childviews => { :only => :needs_edit } }
:methods => [:key, :title, :subtitle]
}
},
:except => [:password]
)
نصائح أخرى
بفضل موسيقى الروك للمؤشرات - أنا الآن يعمل!
هذا الرمز:
@child.to_json(:include =>
{
:observations => {
:include => {
:photos => {},
:childviews => {:only => :needs_edit}
},
:methods => [:S3_key, :title, :subtitle]
}
},
:except => [:password]
)
يعطيني هذا الإخراج (اختصار من أجل الوضوح):
{
"child":
{
"foo":"bar",
"observations":
[
{
"foo2":"bar2",
"photos":
[
{
"foo3":"bar3",
}
],
"childviews":
[
{
"needs_edit":true
}
]
}
]
}
}
شكرا لك روك! كان ذلك يفعل رأسي.
:)
القرآن
لا تنتمي إلى StackOverflow