0

对于我的应用程序,我通过教程HERE实现了对项目的简单搜索。

我正在搜索项目,但我只想搜索对某个属性正确的项目。

如果您在下面看到,我有两个项目:

    1) where('projecttitle LIKE ?', "%#{search}%")
    2) where(:reviewed => true)

第一个是正在搜索的表中的列。但我只想搜索属性为 "reviewed == true" 的项目的列。我该怎么做呢?

谢谢。

项目.rb

def self.search(search)
  if search
    where('projecttitle LIKE ?', "%#{search}%")
    # where(:reviewed => true)
  else
    find(:all)
  end
end
4

2 回答 2

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

希望这可以帮助。

于 2013-06-09T02:54:52.440 回答
0

添加了以下内容并使其正常工作。

项目.rb

scope :approved,  where(:projectreviewed => true)

项目控制器.rb

def index
  @projects = Project.search(params[:search]).approved.page(params[:page]).per_page(8)
end
于 2013-06-09T22:52:20.087 回答