Wygląda na to, że powinno być tak proste, ale powoduje problemy.szyny form_tag ścieżka URL
Mam select_tag, który ściąga z modelu. Chcę tylko, aby osoba wybrała swoją lokalizację z listy rozwijanej, naciśnij przycisk "prześlij" i przenieś ją na stronę tego miejsca.
Oto co mam
<% form_tag installation_path do %>
<%= select_tag :id, options_from_collection_for_select(Installation.find(:all), :id, :name) %>
<div id="button">
<p>
<%= submit_tag "Go", :name => nil %>
</p>
</div>
Problemem jest to oczywiście chce się :id
ale nie będzie ciągnąć :id
z rozwijanego menu poniżej dół.
Co robię źle, wszelkie inne sugestie dotyczące "właściwego" sposobu, aby to zrobić.
Dzięki
Po pierwsze dziękuję! Używanie niewłaściwej metody było def jeden problem. Jednak aby poprawić trasy, musi to być ścieżka instalacji (id). Jednak identyfikator ciągnięty jest identyfikatorem tablicy z kolekcji collection_select. Jakieś pomysły? Naprawdę nie wydaje się, że to proste zadanie powinno być tak trudne. – looloobs
Oto, co chcesz przesłać formularz, i przejdź do '/ installation /: id'. Zamiast tego przejdziesz do '/ installation? Id =: id'. Więc możesz dać Railsowi trasę 'match '/ installation',: to => 'installation' show''. Problem z tą trasą jest - jest w konflikcie z indeksem. Zamiast tego powinieneś mieć specjalną trasę: 'match '/ goto_installation' => 'installation' show ',: as =>' goto_installation''. Następnie w twojej formie: 'form_tag goto_installation_path,: method =>: get do'. Następnie w kontrolerze przed filtrem można "przekierować do ścieżki instalacji (: id => params [: id])", aby uzyskać pożądany adres URL. –
Cześć Właśnie wracam do tego, okazuje się, że nie mogę użyć "dopasowania", ponieważ nie korzystam jeszcze z rails3. Wszelkie pomysły, jak inaczej to zrobić. Po prostu nie mogę zrozumieć, dlaczego jest to tak skomplikowane. Wygląda na to, że robi się to cały czas, ale nie mogę znaleźć wskazówek. Z góry dziękuję. Doceniam twoją pomoc. – looloobs