Rails - Übergabe von Parametern in link_to
Auf der Indexseite "Meine Konten" werden alle Konten aufgelistet. Pro Konto ist ein Link zu "+ Service" angegeben. Dadurch sollte der Benutzer auf die Seite / my_services / new geleitet und das Feld account_id mit der entsprechenden ID vorab ausgefüllt werden, je nachdem, auf welchen Link auf der Kontenindexseite geklickt wurde.
Ich habe Debugging (params) am Ende jeder Seite, und mit dem, was ich versuche, erhalte ich nichts anderes als: controller und: action, die in meinen Parametern für die Seite / my_services / new angezeigt werden.
Der Link, den ich versucht habe, ist folgender:
link_to "+ Service", "my_services/new", :account_id => acct.id
Ich habe dann auch Logik im Dienstecontroller:
def new
@my_service = MyService.new
if params[:account_id]
@my_service.account_id = params[:account_id]
end
end
Kann jemand bei der richtigen Vorgehensweise helfen? Ich war noch nicht in der Lage, es mit ein paar fiesen kleinen Hacky-Dingen in Gang zu bringen, die ich ausprobiert habe.
BEARBEITEN
Es stellt sich heraus, wenn jemand diese Antwort in Zukunft betrachtet, verschachtelte Ressourcen (möglicherweise mit dershallow: true
Option in routes.rb) scheint der richtige Weg zu sein. Meine routes.rb für diesen Teil sieht jetzt so aus:
resources :accounts, shallow: true do
resources :services
end
Meine Links sehen jetzt so aus:
<%= link_to "+ Service", new_service_path(:service => { :account_id => @account.id } ) %>