0

私は Ruby を初めて使用するので、これがばかげた質問である場合は申し訳ありません。検索フィールドで will_paginate を使用しようとしていますが、大文字と小文字を区別しないようにするのに問題があります。助けてくれてありがとう!

rating_controller.rb から:

def index
    @ratings_by_name = Rating.paginate(:order => 'name ASC', :page => params[:page], :per_page =>10, :conditions => ['name like ?', "%#{params[:search]}%"])
    @ratings_by_score = Rating.paginate(:order => 'score DESC', :page => params[:page], :per_page =>10, :conditions => ['name like ?', "%#{params[:search]}%"])

    respond_to do |format|
      format.html # index.html.erb
      format.json { render json: @ratings_by_name }
    end
  end

index.html.erb から:

<div class="tabbable">
  <ul class="nav nav-pills">
    <li class="active"><a href="#tab1" data-toggle="tab">By Name</a></li>
    <li><a href="#tab2" data-toggle="tab">By Score</a></li>
    <li><form class="navbar-search">
      <input type="text" class="search-query span3" placeholder="Search" name="search">
      <div class="icon-search"></div>
     </form></li>
  </ul>
  <div class="tab-content">
    <div class="tab-pane active" id="tab1">
      <% @ratings_by_name.each do |rating| %>
      <div class="rating">
        <div class="row">
          <div class="span7">
            <strong><%= rating.name %></strong>
            <div class="meta">
                | <%= link_to 'View', rating %> | 
              <span class="admin">
                <%= link_to 'Edit', edit_rating_path(rating) %> | 
              </span>
              Rated on <%= rating.when_rated %>
            </div>
          </div>
          <div class="span1">
            <%= rating.score %>
          </div>
        </div>
      </div>
      <% end %>
4

1 に答える 1

0

オーダーに「LOWER(名前)」を使ってみてください

@ratings_by_name = Rating.paginate(:order => 'LOWER(name) ASC', :page => params[:page], :per_page =>10, :conditions => ['name like ?', "%#{params[:search]}%"])
于 2014-04-27T10:10:25.810 に答える