Ruby on rails rails-特别包括列表中的第一条记录

Ruby on rails rails-特别包括列表中的第一条记录,ruby-on-rails,search,Ruby On Rails,Search,当使用以下代码显示名为Submitter的my Model中的所有记录时,我排除了索引页上列出的第一行: 提交者\u 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.ht

当使用以下代码显示名为
Submitter
的my Model中的所有记录时,我排除了索引页上列出的第一行:

提交者\u 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
但是,我有一个搜索选项,需要显示第一行(特别是当只有一条记录要显示时)。有没有办法在我的Submitter.rb(Model)文件中包含第一行

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
试试这个

 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

这是rails 3应用程序吗?是的。Rails 3.2.11
submitter.rb:37:语法错误,意外的关键字\u end,需要$end
谢谢您的帮助。您的代码在逻辑上对我来说是有意义的,但是当我用更新的代码搜索关键字时,什么也没发生。没有结果加载,完整列表保留,只是页面刷新。@Devin尝试使用调试器,看看它是否通过if条件“search.present?”很抱歉,我不熟悉调试器。这是一块宝石吗?@Devin,是的,看这个,gut在rails 3中使用相同的“调试器”,它提供相同的功能。