是否可以使用form_tag在运行时动态设置要提交表单的位置?我所拥有的是一个共享的局部视图,用于过滤几个屏幕上的数据。该视图包含几个不同的表单字段和一个提交按钮,因此这些控件的UI对于使用它的所有屏幕都是相同的,因此共享局部视图。不同之处在于我希望提交返回到不同的位置,具体取决于包含部分视图的页面。是否有某种方式通过渲染标记传递目标,如下所示?
<%= render 'shared/event_filter', :dest => event_path %>
然后在局部视图中使用它,如下所示?
<%= form_tag(:dest, :method => "get") do %>
上面的代码不起作用,它给了我在form_tag中的:dest的nomethod错误,但我只是在提出这个问题来帮助说明我想要做的事情。
任何帮助/建议都将不胜感激。
答案 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 %>