Rails url_for с вложенным идентификатором ресурса вместо объекта
Мне нужно построить URL внутри контроллера для вложенного ресурса:
http://0.0.0.0:3000/account/1/address/new
Я мог бы сделать: new_account_address_path(@account), но я нахожусь внутри контроллера, который имеет идентификатор учетной записи в контексте (params[:id]). Я не хочу загружать объект из БД только для создания URL.
Каков наилучший способ расширить помощники рельсов до этого: new_account_address_path(params[:id]) и иметь http://0.0.0.0:3000/account/1/address/new?
Я также не хочу создавать фиктивный экземпляр.
1 ответ
Решение
Вы должны быть в состоянии передать аргументы маршрута как хеш:
new_account_address_path(:account_id => params[:account_id])