我在进行搜索时得到了一个奇怪的结果我已经从Railscast#111(高级搜索)中获得了赞誉。
搜索结果从我拥有的条目中通过OK,但是当结果大于1时(仅仅测试了两个结果) - 它会使结果加倍。因此,当我期待两个结果时,我得到4(在表格中呈现)。
奇怪的是,当我期待1个结果时,它只会渲染1个结果。
我觉得这与我的“Search.rb”有关。提供搜索参数的文件。其他人可以解释为什么会产生重复的结果吗?
class Search < ActiveRecord::Base
def entries
@entries ||= find_entries
end
private
def find_entries
entries = Entry.order(:firstname)
entries = entries.where("firstname like ?", "%#{firstname}%") if firstname.present?
entries = entries.where("lastname like ?", "%#{lastname}%") if lastname.present?
entries
end
end
我按名字或姓氏搜索,但条目中包含更多字段。
答案 0 :(得分:0)
尝试
def find_entries
entries = Entry.order(:firstname)
if !firstname.blank?
entries = entries.where("firstname like ?", "%#{firstname}%")
if !lastname.blank?
entries = entries.where("lastname like ?", "%#{lastname}%")
end
else
if !lastname.blank?
entries = entries.where("lastname like ?", "%#{lastname}%")
end
end
entries
end