2010-12-16 2 views
0

У меня есть модель, которая представляет собой покупкуRails 3 дизайна для has_many: через


class Purchase < ActiveRecord::Base 
    belongs_to :user 
    belongs_to :item 

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

/элемент/1/покупка/новый

Это будет работать нормально, но я также как и пользователь, чтобы иметь возможность перейти на/пользователь/1/покупки/1/редактировать и т. д. Базовая покупка должна быть вложена как на пользователя, так и на элемент, который вы не можете.

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

ответ

1

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

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

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