:search => :所有在轨道上返回空3

时间:2013-07-19 23:14:49

标签: ruby-on-rails search

我有一个像这样的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

我有另外一种方法,但我对此有所限制,但仍无效。

欢迎任何建议,谢谢!

1 个答案:

答案 0 :(得分:0)

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

如果您只是写<%= 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