3

カスタムURLパラメータをform_tagメソッドに渡したいという問題があります。私はstackoverflowで説明されている多くの方法を試しましたが、レール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を生成するには、url_forまたはpolymorphic_pathを使用する必要があります。好き:

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

また

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