3

Railsサイトに全文検索を追加し、ユーザーが検索入力ボックスに二重引用符を入力できるようにします。問題は、二重引用符がMongrelによってフィルターで除外されているように見えるため、paramsハッシュの値でこれらの引用符を受け取らないことです。これを防ぐにはどうすればよいですか?Rails2.3.8を実行しています。

【編集:分析データ追加】

Firebugでは、postパラメーターが引用符で正しく投稿されているのがわかります。

search_criteria "great post"

ただし、開発ログでは、引用符はなくなりました。

PostsController#searchの処理(2010-06-18 17:28:45の127.0.0.1の場合)[POST]パラメーター:{"search_criteria" => "great post"、 "action" => "search"、 "authenticity_token" = > "xUaOc1IAyjQmKn1NGqBpPVaTBmD4ayPq / lUJsqJGCxY ="、 "controller" => "posts"}

そして、コントローラーにparams [:search_criteria]の内容とサイズを記録すると、次のようになります。

search criteria = great post
search criteria size = 10

[編集:新しい検出]上記のこの問題は、引用符で囲まれた文字列の末尾または前にスペースなどの別の文字が付いている場合には発生しません。

4

2 に答える 2

3

どうやらこれはラック1.1.0のバグです。修正[ここのパッチ]はラック1.2.0に対して行われました。ただし、アクションパック(したがってレール)2.3.6から2.3.10は、ラック〜> 1.1.0に依存しているため、すべてこの問題が発生します。

実際に発生する可能性が最も高い潜在的な解決策が最初に注文されました...

  • 上記の修正に基づいてラックのコピーにパッチを適用します
  • Rails3にアップグレードする

この質問には、ラックにパッチを適用する方法に関するヒントがあります。

于 2010-12-14T18:33:38.837 に答える
0

このページには、アプリのソースコードを使用してラックにパッチを適用する方法の詳細な手順が記載されています。宝石をいじる必要はありません。それは私にとって魅力のように機能しました(Rails2.3.10)。

于 2011-04-11T17:12:19.393 に答える