как я могу получить это: через?

0

поэтому у меня есть следующие отношения:

местоположение:

has_many :services
has_many :products, :through => :services 

произведение:

  has_many :services
  has_many :locations, :through => :services
  has_many :add_ons

и услугу:

belongs_to :product
belongs_to :location

has_many :service_add_ons
has_many :add_ons, :through => :service_add_ons

a service_add_on:

belongs_to :service
belongs_to :add_on

Как я могу написать: через это вернет место с его продуктами и каждым продуктом add_ons? до сих пор я:

wants.json { render :json => @location.to_json(:include => {:products => {:add_ons}}) }

который, очевидно, не работает. Что я могу сделать, чтобы изменить это и заставить его работать?

  • 0
    как ваша модель product ?
  • 0
    has_many: services has_many: location,: through =>: services has_many: add_ons ... Я добавил это к вопросу
Теги:
join

3 ответа

2
Лучший ответ

Попробуйте следующее:

wants.json { 
  render :json => @location.to_json(:include => {:products => {:include => :add_ons}}) 
}
  • 0
    Я не думал, чтобы попытаться вложить это! Это работает отлично, хотя!
0

Извините за мой английский: S

Я думаю, что здесь есть ошибка:

a service_add_on:

belongs_to :service

belongs_to :add_on

add_on должен принадлежать__ service_add_on, а не наоборот

0

Я считаю, что вы должны использовать

:include => {:products => :add_ons}
  • 0
    это не сработало, возможно, я должен был включить это: want.json {render: json => @ location.to_json (: include => [: products =>: add_ons])} ... Я добавил это к вопросу слишком

Ещё вопросы

Сообщество Overcoder
Наверх
Меню