0

Submitter次のコードを使用して呼び出されたモデルのすべてのレコードを表示するときに、インデックス ページにリストされている最初の行を除外しています。

submitters_controller.rb:

def index
@submitters = Submitter.where(:school_id =>@current_user.school_id).order('school_id,first_name').search(params[:search])[1..-1]
respond_to do |format|
  format.html # index.html.erb
  format.json { render json: @submitters }
end
end

ただし、最初の行を表示する必要がある検索オプションがあります (特に、表示するレコードが 1 つしかない場合)。具体的に最初の行を含む Submitter.rb (モデル) ファイルに含める方法はありますか?

submitter.rb:

def self.search(search)
if search
  Submitter.find(:all, :conditions => ['first_name LIKE :search OR last_name LIKE :search', {:search => "%#{search}%"}])
else
  all
end
end

モデルの末尾に [0..-1] を追加してみSubmitter.rbました。これにより、今すぐ検索を実行できますが、最初のレコードはまだ非表示になっています。複数の結果がある場合、リストされた最初の行の後にすべてを表示できるため、機能していることはわかっています。

if search
  Submitter.find(:all, :conditions => ['first_name LIKE :search OR last_name LIKE :search', {:search => "%#{search}%"}])[0..-1]
else
4

1 に答える 1

0

これを試してみてください

 def self.search(search)
  if search.present?
    search_query = Submitter.where('first_name LIKE :search OR last_name  LIKE:search', {:search => "%#{search}%"})
    if search_query.count > 1
      result = search_query.offset(1)
    else
      result = search_query
    end
  else
    return self.all
  end
  result.all
end
于 2013-08-01T16:45:35.153 に答える