На моей странице Индексная книжка содержит все учетные записи, а на каждую учетную запись есть ссылка на "+ Сервис"; это должно направить пользователя на страницу/my_services/new и предварительно заполнить поле account_id соответствующим идентификатором, в зависимости от того, какая ссылка была нажата на странице индекса Учетных записей.Rails - параметры для передачи в link_to
У меня есть отладка (params) внизу каждой страницы, и с тем, что я пытаюсь, я не получаю ничего, кроме: controller и: действие, отображаемое в моих параметрах для/my_services/new page ,
Ссылки Я пытался это:
link_to "+ Service", "my_services/new", :account_id => acct.id
Я тогда также логика в контроллере услуг:
def new
@my_service = MyService.new
if params[:account_id]
@my_service.account_id = params[:account_id]
end
end
Может кто-то помочь с правильным способом сделать это? Я еще не смог с этим справиться с несколькими неприятными маленькими хакерскими вещами, которые я пробовал.
EDIT
Оказывается, если кто-то смотрит на этот ответ в будущем, вложенные ресурсы (возможно, с shallow: true
опции в routes.rb), как представляется, путь. Мой routes.rb для этой части теперь выглядит следующим образом:
resources :accounts, shallow: true do
resources :services
end
Мои ссылки выглядеть следующим образом:
<%= link_to "+ Service", new_service_path(:service => { :account_id => @account.id }) %>
Интересно, если это будет работать link_to "Сервис", "? My_services/новый account_id =" + acct.id –