3

我有一个问题,我想将自定义 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. 这应该是我的选项卡的初始状态,每次重新加载页面时,也应该传递这个 url 参数,以提供我当前的选项卡。

4

1 回答 1

0

伙计,请解释您要做什么,而不是如何。您不将参数传递给表单,这是没有意义的。说明你的目标是什么,我也许可以帮助你。

如果您想通过表单将参数从 url 传递到您的控制器,您只需创建一个隐藏字段并使用 params[:param_name] 设置其值

编辑==============

您必须使用 url_for 或 polymorphic_path 来生成带参数的 url。喜欢:

    form_tag(:url => url_for(...path_with_parameters))

或者

form_tag(:url => polymorphic_path(...path_with_parameters))
于 2012-11-09T11:07:25.800 回答