Динамическая настройка пункта назначения отправки form_tag

Можно ли установить место, куда вы хотите отправить форму динамически во время выполнения, с помощью form_tag? У меня есть общий частичный вид, который используется для фильтрации данных на нескольких экранах. Представление содержит несколько разных полей формы и кнопку отправки, поэтому пользовательский интерфейс для этих элементов управления одинаков для всех экранов, которые его используют, таким образом, общий частичный вид. Разница в том, что я хочу, чтобы отправка возвращалась в другое место в зависимости от того, на какой странице содержится частичное представление. Есть ли способ передать пункт назначения через тег рендеринга, как показано ниже?

<%= render 'shared/event_filter', :dest => event_path %>

а затем потреблять его в частичном представлении следующим образом?

<%= form_tag(:dest, :method => "get") do %>

Приведенный выше код не работает, он дает мне ошибку nomethod в :dest в form_tag, но я просто задал этот вопрос, чтобы проиллюстрировать, что я пытался сделать.

Любая помощь/предложения будут оценены.


person Chris Dellinger    schedule 07.12.2010    source источник


Ответы (1)


Я думаю, вы могли бы искать что-то в этом роде:

<%= render :partial => 'shared/event_filter', :locals => {:form_action => event_path} %>

Который просто отображает партиал с именем shared/_event_filter.html.erb и передает переменную с именем form_action со значением event_path.

Затем внутри вашего частичного:

<%= form_tag form_action, :method => "get" do %>
    <!-- snip -->
<% end %>
person theTRON    schedule 07.12.2010