Rails - passando parâmetros no link_to
A página de índice Minhas contas lista todas as contas e por conta tem um link para "+ Serviço". isso deve direcionar o usuário para a página / my_services / new e pré-preencher o campo account_id com o ID apropriado, dependendo de qual link foi clicado na página de índice de Contas.
Eu tenho debug (params) na parte inferior de cada página, e com o que estou tentando, não estou conseguindo nada além de: controller e: action aparecendo nos meus parâmetros para a página / my_services / new.
O link que tenho tentado é o seguinte:
link_to "+ Service", "my_services/new", :account_id => acct.id
Eu também tenho lógica no controlador de serviços:
def new
@my_service = MyService.new
if params[:account_id]
@my_service.account_id = params[:account_id]
end
end
Alguém pode ajudar com a maneira correta de fazer isso? Eu ainda não fui capaz de continuar com algumas coisas desagradáveis que eu tentei.
EDITAR
Acontece que, se alguém está olhando para esta resposta no futuro, recursos aninhados (possivelmente com oshallow: true
opção em routes.rb) parece ser o caminho a percorrer. Meu routes.rb para esta parte agora se parece com isso:
resources :accounts, shallow: true do
resources :services
end
Meus links agora são assim:
<%= link_to "+ Service", new_service_path(:service => { :account_id => @account.id } ) %>