У меня есть две модели:Связанные модели без вложенных маршрутов
class GarageOwner < ActiveRecord::Base
has_many :garages, dependent: :destroy
end
class Garage < ActiveRecord::Base
belongs_to :garage_owner
end
гаражной никогда не должны существовать без владельца гаража. Поэтому в действии GaragesController
мне нужен соответствующий владелец гаража. Я не хочу использовать вложенные маршруты, поэтому у меня нет идентификатора владельца гаража в качестве параметра. Но как мне его получить?
Обновление для некоторого разъяснения
Гаражи созданы третьей модели (Admin
). Поэтому я не могу получить доступ к владельцу гаража через текущего пользователя.
Я строй мои маршруты с помощью resources
:
garage_owners GET /garage_owners(.:format) garage_owners#index
POST /garage_owners(.:format) garage_owners#create
new_garage_owner GET /garage_owners/new(.:format) garage_owners#new
edit_garage_owner GET /garage_owners/:id/edit(.:format) garage_owners#edit
garage_owner GET /garage_owners/:id(.:format) garage_owners#show
PUT /garage_owners/:id(.:format) garage_owners#update
DELETE /garage_owners/:id(.:format) garage_owners#destroy
garages GET /garages(.:format) garages#index
POST /garages(.:format) garages#create
new_garage GET /garages/new(.:format) garages#new
edit_garage GET /garages/:id/edit(.:format) garages#edit
garage GET /garages/:id(.:format) garages#show
PUT /garages/:id(.:format) garages#update
DELETE /garages/:id(.:format) garages#destroy
Вы должны передать его в качестве параметра. Как выглядят ваши маршруты? Кстати, почему вы не хотите использовать вложенные маршруты? –
Я не хочу, чтобы "garage_owner" отображался в моих URL-адресах. Я обновил вопрос. Вы можете увидеть маршруты там. – stevecross
, откуда идет «гараж»? это не в URL-адресе, это не связано с ассоциированным пользователем, как кто-либо или приложение знают, что такое «гараж-владелец»? –