0

我有一个这样的link_to:

<%= link_to "All", cars_path(:search => :all) %>

当我点击他时,我收到了这个网址:

本地主机:3000/汽车?搜索=全部

问题是,我在数据库中有 3 条记录,并且搜索链接没有显示任何内容。

我的 cars_controller.rb 有索引:

@cars = Car.search(params[:search]) 

在 car.rb 模型中,我有一个方法:

def self.search(search)
    result = order('new DESC')
    result = joins(:model => :brand).where('brands.title LIKE ? OR models.title LIKE ? OR status LIKE ?', "%#{search}%", "%#{search}%", "%#{search}%").order('new DESC') if search.present?
    result
end

我有另一种方法,但我对此进行了限制,但仍然无法正常工作。

欢迎任何建议,谢谢!

4

1 回答 1

0

在您的查询中,您正在搜索标题或品牌名称中包含“all”的汽车。这真的是你想要的吗?你的桌子上有没有这样名字的汽车?

如果你只是写<%= link_to "All", cars_path %>搜索将不存在,你应该得到所有的汽车。

当您在这样的查询中使用相同的参数乘以多次时,如果您这样编写它可以使其更短。

def self.search(search)
    result = order('new DESC')
    result = result.joins(:model => :brand).where('brands.title LIKE :search OR models.title LIKE :search OR status LIKE :search', search: "%#{search}%") if search.present?
    result
end
于 2013-07-19T23:41:55.753 回答