пример контроллера модели rails rich join - PullRequest
3 голосов
/ 07 декабря 2011

Я читал кое-что о рельсах, и одна вещь, с которой я никогда не сталкивался, это пример того, как выглядит контроллер или страницы просмотра модели расширенного объединения.

Является ли общепринятой практикой не иметь контроллер / просматривать страницы этих моделей?

У кого-нибудь есть пример кода контроллера / представления для расширенного объединения?

edit: определение расширенного объединения.

Model A
  has_many :model_c
  has_many :model_b, :through => model_c

Model B
  has_many :model_c
  has_many :model_a, :through => model_c

Model C
  belongs_to :model_a
  belongs_to :model_b

Мне любопытно посмотреть, как выглядит контроллер модели C, учитывая, что это модель соединения между моделями A и B. Например, когда вам нужно создать новую страницу Model C, как вы извлекаете и сохраняете значения для model_a.id и model_b.id, чтобы все они были связаны.

1 Ответ

2 голосов
/ 07 декабря 2011

Хорошо, поэтому я могу высказать свое личное мнение об этом, и это "это зависит".:)

Я видел проекты, в которых есть полноценный каркас для модели соединения, и я видел проекты, в которых их нет.Обычно разница в том, насколько важна модель соединения.если есть только один или два дополнительных столбца - и они обычно отображаются только, скажем, на странице профиля пользователя, тогда не беспокойтесь.Но если модель соединения действительно богато украшена ... ну, это действительно целая модель сама по себе - и заслуживает полной подмостей, чтобы покрыть это.

Иногда есть полные леса, но только с определенных точек зрения.

Хорошим примером последнего может служить случай, когда у вас есть модели A & B, например, «пользователь», «услуга» и модель C, как «подписка».

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

, так что ... это зависит:)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...