我有一个像这样的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
我有另外一种方法,但我对此有所限制,但仍无效。
欢迎任何建议,谢谢!
答案 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