2

私はレールにかなり慣れていないので、この検索フォームを使用しています

  <%= form_tag producer_path(@user), method: :get do %>
    <p>
      <%= text_field_tag :search, params[:search] %>
      <%= submit_tag "Search", name: nil %>
    </p>
  <% end %>

モデルでは SQL LIKE

  def self.search(search)
    if search
      find(:all, conditions: ['name LIKE ?', "%#{search}%"])
    else
      find(:all)
    end
  end

これはデフォルトで大文字と小文字を区別しないと思っていましたが、そうではありません。PostgreSQL 9.1 を使用しています。これは、データベース用に構成する必要があるものですか? もしそうなら、どこで?

ところで、印刷できない文字を含む UTF8 ハッシュを含む次のパラメーターが URL に表示されます (ブラウザーのアドレス バーでは、ここでは html でチェック記号として表示されるようです)。この UTF8 エンコーディングが問題の原因でしょうか?

?utf8=✓&amp;search=
4

2 に答える 2

0

ここに同様のスレッドがあります。

LIKE ワイルドカードを使用して列を検索 (大文字と小文字を区別しない) するにはどうすればよいですか?

これは実際には Rails ソリューションではありません。高度な機能を備えた検索用の meta-search gemを試してみることをお勧めします。

于 2013-04-10T06:11:56.657 に答える