Railsy - przekazywanie parametrów w link_to
Strona indeksu Moje Konta zawiera listę wszystkich kont, a na koncie znajduje się link do „+ Serwis”; powinno to skierować użytkownika do strony / my_services / new i wstępnie wypełnić pole account_id odpowiednim ID, w zależności od tego, który link został kliknięty na stronie indeksu Konta.
Mam debugowanie (params) na dole każdej strony iz tym, co próbuję, nie otrzymuję niczego innego niż: controller i: akcja pojawiająca się w moich parametrach dla strony / my_services / new.
Link, który próbowałem, jest następujący:
link_to "+ Service", "my_services/new", :account_id => acct.id
Mam też logikę w kontrolerze usług:
def new
@my_service = MyService.new
if params[:account_id]
@my_service.account_id = params[:account_id]
end
end
Czy ktoś może pomóc we właściwy sposób? Nie udało mi się jeszcze zrobić tego z kilkoma paskudnymi hackami, których próbowałem.
EDYTOWAĆ
Okazuje się, jeśli ktoś patrzy na tę odpowiedź w przyszłości, zagnieżdżone zasoby (prawdopodobnie za pomocąshallow: true
opcja w route.rb) wydaje się być dobrym rozwiązaniem. Moja route.rb dla tej części wygląda teraz tak:
resources :accounts, shallow: true do
resources :services
end
Moje linki wyglądają teraz tak:
<%= link_to "+ Service", new_service_path(:service => { :account_id => @account.id } ) %>