0

私はレールに乗っており、pg_search宝石を使用しています。入力を使用してパラメータを渡す場合、検索は正常に機能します。しかし、クエリパラメータをURLからコントローラに渡して高度なフィルタリングを実行しようとすると、失敗します。URLはのようなもので、私のコントローラーはの代わりにとしてhttp://localhost:3000/search?q=new+year読み取ります。私は何時間もドキュメントを読んでグーグルをしていますが、私の問題の解決策を見つけることができません。プラス記号付きのパラメータをURLからコントローラに渡すにはどうすればよいですか?params[:q]newnew year

編集:フォームを使用して、パラメータを非表示フィールドとして渡します。私のビューファイル:

  <% if params[:q] %>
    <input name="q" type="hidden" value=<%= params[:q] %>>
  <% end %>
4

2 に答える 2

1

これは、Rails やパラメーターの解析とは関係ありません。不正な HTML を生成しています。問題はvalue、hidden の属性の値を引用符で囲んでいないことです<input>

これ:

value=<%= params[:q] %>>

これである必要があります:

value="<%= params[:q] %>">

そうしないと<input ... value=new year />、「年」がvalue属性の一部として解析されないようなものが生成されます。

于 2013-01-14T19:55:49.150 に答える
0

そのようなタグを作成するべきではありません。代わりに、組み込みの Rails 入力タグ ヘルパーを使用してください。

例えば:

<% if params[:q] %>
  <%= hidden_field_tag :q, :value => params[:q] %>
<% end %>
于 2013-01-17T04:01:15.710 に答える