Rails 3 дизайн для has_many: через - PullRequest
0 голосов
/ 16 декабря 2010

У меня есть модель, которая представляет покупку


class Purchase &lt ActiveRecord::Base
  belongs_to :user
  belongs_to :item

Таким образом, каждая покупка принадлежит как пользователю, так и приобретаемому предмету. Теперь вот моя проблема, я мог бы вкладывать покупки на предмет, так что, когда пользователь покупает, он перейдет к:

/ товар / 1 / покупка / новый

Это бы хорошо работало, но мне также хотелось бы, чтобы пользователь мог переходить в / user / 1 / покупок / 1 / редактировать и т. Д. В основном покупка должна быть вложена как в пользователя, так и в товар, который вы не можете.

Сейчас я в основном добавляю более спокойные действия как для пользователя, так и для элемента, такие как / item / 1 / purchase и / user / 1 / purchase / etc, но это приводит к значительному увеличению количества контроллеров. Это единственный способ или вы можете вкладывать ресурс в 2 ресурса?

1 Ответ

1 голос
/ 16 декабря 2010

Конечно, они могут вкладываться в оба. Rails не помешает вам делать любые маршруты, которые вы хотите.

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

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