对于我的应用程序,我已经通过教程HERE实现了对项目的简单搜索。
我正在搜索项目,但我想只搜索某个属性的项目。
如果您在下面看到,我有两个项目:
1) where('projecttitle LIKE ?', "%#{search}%")
2) where(:reviewed => true)
第一个是正在搜索的表中的列。但我想只搜索属性" review == true" 。我该怎么做?
感谢。
project.rb
def self.search(search)
if search
where('projecttitle LIKE ?', "%#{search}%")
# where(:reviewed => true)
else
find(:all)
end
end
答案 0 :(得分:0)
我不确定你的模型中是否真的需要这样的搜索方法,除非它在别处使用。话虽如此,我认为控制器中的以下内容会起作用。注意:我没有查看过该教程。
def YOUR_CONTROLLER_ACTION_NAME_HERE
if params[:search]
@projects = Project.where("reviewed = ? and projecttitle LIKE %?%", true, params[:search])
else
@projects = Project.all
end
end
希望这会有所帮助。
答案 1 :(得分:0)
添加以下内容并使其正常工作。
project.rb
scope :approved, where(:projectreviewed => true)
projects_controller.rb
def index
@projects = Project.search(params[:search]).approved.page(params[:page]).per_page(8)
end