2016-08-07 2 views
0

У меня есть две таблицы Join, первая между alarm_id | list_id, а другая между list_id | car_id что делать, чтобы попасть в тревожное шоу, автомобили в каждом списке, я попытался использовать has_many: cars : через => списки, но это не работает любая помощь пожалуйстаКак получить данные из двух разных таблиц соединений

+0

У вас есть 'list_id' в руке? –

ответ

1

Вы должны правильно настроить ассоциации. Он должен выглядеть примерно так, в зависимости от требований ур.

class Alarm < ActiveRecord::Base 
    has_many :alarm_lists 
    has_many :lists, through: :alarm_lists 
    has_many :car_lists, through: :lists 
    has_many :cars, through: :car_lists 
    ... 
end 

class List < ActiveRecord::Base 
    has_many :car_lists 
    has_many :cars, through: :car_lists 
    ... 
end 

class Car < ActiveRecord::Base 
    has_many :car_lists 
    has_many :lists, through: :car_lists 
    ... 
end 

class CarList < ActiveRecord::Base 
    belongs_to :car 
    belongs_to :list 
    ... 
end 

class AlarmList < ActiveRecord::Base 
    belongs_to :alarm 
    belongs_to :list 
    ... 
end 

для получения дополнительной информации, выезд here.

+0

У меня нет модели CarList или AlarmList, но я скорректировал отношения, но не могу знать, что писать, я попробовал alarm.list.cars, но не получил никакого результата. – peterateftawfik

+0

Хм может показать ур схему для соединения таблицы, аварийные сигналы, списки и автомобили ... Кстати, это должно быть '' '' 'alarm.lists.first.cars'''', чтобы произвести какой-либо результат, если ур-ассоциации верны – Vic

+0

все идет хорошо, но при использовании, например, alarm.cars .size на индексной странице это дает мне ошибку неинициализированную константу Alarm :: CarsList и выделяет следующую строку: <% = alarm.cars%> – peterateftawfik