form_tag提交目标的动态设置

时间:2010-12-07 14:05:36

标签: ruby-on-rails forms

是否可以使用form_tag在运行时动态设置要提交表单的位置?我所拥有的是一个共享的局部视图,用于过滤几个屏幕上的数据。该视图包含几个不同的表单字段和一个提交按钮,因此这些控件的UI对于使用它的所有屏幕都是相同的,因此共享局部视图。不同之处在于我希望提交返回到不同的位置,具体取决于包含部分视图的页面。是否有某种方式通过渲染标记传递目标,如下所示?

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

然后在局部视图中使用它,如下所示?

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

上面的代码不起作用,它给了我在form_tag中的:dest的nomethod错误,但我只是在提出这个问题来帮助说明我想要做的事情。

任何帮助/建议都将不胜感激。

1 个答案:

答案 0 :(得分:0)

我认为你可能正在寻找这些方面的东西:

<%= 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 %>