/ / Rails link_to parametr przekazujący parametr nie odwzorowujący na metodę kontrolera - ruby-on-rails, ruby

Railsy link_to przekazanie parametrów metody nie odwzorowanie na metodę kontrolera - ruby-on-rails, ruby

Jestem nowy w szynach i próbuję połączyć się zkonkretna metoda w kontrolerze. Mój kontroler nazywa się OrganismsController, a metoda to upload_reference_file. Patrząc na inne podobne pytania mam teraz link do pracy jako

<%= link_to "Upload Reference Sequence", :controller => :organisms, :action => :upload_reference_file %>

Muszę jednak przekazać obecny organizm do metody upload_reference_file. Próbowałem już

<%= link_to "Upload Reference Sequence", :controller => :organisms, :action => :upload_reference_file(organism) %>

ale szyny narzekają, że powyższy kod nie jest poprawną składnią. Wewnątrz pliku moich tras mam metodę dopasowaną do działania kontrolera jako

match "/organisms/upload_reference_file" => "organisms#upload_reference_file"

Wszelaka pomoc jest bardzo doceniana. Dzięki!

Odpowiedzi:

2 dla odpowiedzi № 1

Powinieneś zdefiniować działanie RESTful zgodnie z opisem w "Dodawanie bardziej restrykcyjnych akcji" sekcja dokumentacji Rails Routing. Spowoduje to utworzenie metody pomocniczej akceptującej ścieżkę i umożliwiającej bardziej naturalne wykorzystanie.

Na przykład, jeśli nie masz żadnych dodatkowych działań członków:

resources :organisms do
get "upload_reference_file", :on => :member
end

Będziesz wtedy miał upload_reference_file_organism_path, obracając twój link_to w:

<%= link_to "Upload Reference Sequence", upload_reference_file_organism_path(organism) %>

(W przypadku, gdy wymaga to poprawienia, można uzyskać utworzoną nazwę ścieżki, uruchamiając ją rake routes; moja pamięć nie jest tak dobra.)