2014-11-12 3 views
0

Я работаю в приложении для рельсов, где компания имеет несколько заказов. У заказа есть имя, и все. В заказе может быть несколько телевизионных_сообщений, радио_меток и газетных номеров, данные в этих таблицах не одинаковы, поэтому их нужно разделить. Теперь, если в order_many radio_placements у него нет телевизионных_пакетов или газетных номеров. Мой вопрос заключается в том, что плохая практика имеет отношение has_many к модели, даже если она не существует? Было бы лучше, если бы у компании были какие-то телевизионные_диаграммы и телевизионные_пользователи? И, таким образом, у компании есть несколько радиообъявлений и радиообмена с несколькими радиостанциями и т. Д. Я думаю, что первый вариант - это сушка, но использование второй стратегии может привести к более понятному понятному коду, поскольку приложение растет и что мы делаем с изменениями данных.Использование нескольких ассоциаций has_many на одной модели

+1

Очень сложно прочитать ваш вопрос, использовать короткие предложения и извлечь код в блоки кода для чтения – Alireza

ответ

0

Неплохая практика иметь ассоциацию has_many, которая фактически не имеет связанных моделей. Реальный вопрос: какой тип объекта должен быть связан radio_placements, television_spots и newspaper_placements. Если они действительно должны быть связаны с моделью Order, тогда разместите там ассоциации. Из моего понимания вашего вопроса/формы данных, похоже, вы хотите, чтобы эти отношения находились на модели Order. Так что-то вроде:

class Company 
    has_many :orders 
    has_many :television_spots, through: :orders 
    has_many :radio_placements, through: :orders 
    has_many :newspaper_placements, through: :orders 
end 

class Order 
    has_many :television_spots 
    has_many :radio_placements 
    has_many :newspaper_placements 
end 

Надеюсь, это поможет.

Смежные вопросы