我有问题,我想将自定义 url 参数传递给 form_tag 方法。 我已经尝试了很多在 stackoverflow 上解释的方法,但似乎没有一种方法适合 Rails 3.2.8。
这是我现在的:
<%= form_tag search_results_path,
:method => "get",
:params => params.merge(:button => "..."),
class: "form-search" do %>
这也行不通:
<%= form_tag search_results_path,
:method => "get",
:params => params.except(:controller, :action).
merge(:button => "..."),
class: "form-search" do %>
但是当 search_results_path 完成加载时,params[:button] 没有设置。
感谢您的帮助。
编辑:
我尝试在具有 action="/search/params?button=xxx
的 View 中呈现表单。这应该是我的选项卡的初始状态,并且每次页面重新加载时,这个 url 参数也应该传递,以提供我当前的选项卡。
最佳答案
伙计,请解释你想做什么,而不是怎么做。 您不将参数传递给没有意义的表单。 说明您的目标是什么,我也许可以帮助您。
如果你想通过表单将参数从 url 传递到你的 Controller ,你只需创建一个隐藏字段并使用 params[:param_name] 设置它的值
编辑==============
您必须使用 url_for 或 polymorphic_path 来生成带参数的 url。 喜欢:
form_tag(:url => url_for(...path_with_parameters))
或
form_tag(:url => polymorphic_path(...path_with_parameters))
关于ruby-on-rails-3.2 - 如何将参数传递给 rails form_tag?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13306653/