0

我正在尝试搜索Ticket模型中的所有列。大多数列都与belongs_to关联相关联,因此我必须在列中搜索信息的属性,因为人们不知道 ID。

这些文章有帮助: 在 Rails 3.0 中搜索多个 db 列

Rails:在 has_one 关联中搜索

到目前为止,我有以下代码,但它只搜索顶部参数。我怎样才能得到它,如果它在热门搜索中找不到任何东西,它会尝试下一个。我会为此添加更多内容。

谢谢

def self.search(search)
  if search
    Ticket.joins(:submitter).where('first_name LIKE ?', "%#{search}%")
  elsif  
    Ticket.joins(:issue).where('name LIKE ?', "%#{search}%")
  else
    all
  end
end

我想通了,在这里更新了正确的代码:

def self.search(search)
case search 
when /^[-+]?[0-9]*\.?[0-9]+$/
  Ticket.find(:all, :conditions => ['id LIKE :search', {:search => "%#{search}%"}])
else
  Ticket.joins(:submitter,:issue).find(:all, :conditions => ['name LIKE :search OR first_name LIKE :search', {:search => "%#{search}%"}])
end
end
4

1 回答 1

1

上面更新的代码 - 找到答案

于 2013-07-27T18:18:54.223 回答