Отправленный Select_tag необходимо перенаправить, чтобы показать страницу с: id? - PullRequest
1 голос
/ 13 декабря 2010

Привет Я задавал вопрос, похожий на этот, но так и не решил его. Итак, я пытаюсь снова.

Кажется, это должно быть так просто. Я еще не использую Rails 3, кстати.

Все, что я хочу сделать, это иметь раскрывающееся меню, и когда человек выбирает это место и нажимает кнопку «Перейти», он переходит на эту страницу.

    <% form_tag installation_path([:id]), :url => { :action => "show" }, :method => :get do %>
<%= select_tag :id, options_from_collection_for_select(Installation.find(:all), :id, :name) %>
<%= submit_tag 'Go' %>
<% end %>

Это становится проблемой: http://localhost:3000/installations/id?id=1&commit=Create. Не удается найти: id. Я просто не знаю, как правильно это организовать. Кажется, это не должно быть так сложно.

Любая помощь будет великолепна. Спасибо.

Ответы [ 2 ]

0 голосов
/ 19 июня 2014

Вам необходимо создать и использовать новый маршрут «show», который не основан на идентификаторе установки (и не конфликтует с маршрутами ресурсов Rails), и продолжать отправлять идентификатор установки в действие show контроллера как часть объект params.

В маршрутах .rb,

get 'show_installation', to: 'installations#show'

На ваш взгляд,

<% form_tag show_installation_path, :method => :get %>
...
0 голосов
/ 07 февраля 2011

Я думаю, что может быть проблема с вашим form_tag.Кажется, вы определяете путь дважды.

Оба

installation_path([:id])

и

:url => { :action => "show" }

используются для генерации пути, но я не думаю, что вы должны использовать оба.Просто наберите

installation_path([:id])

или

:url => { :controller => "installations", :action => "show", :id => id }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...