如何为一个q =查询提取结果?

时间:2012-06-25 23:51:08

标签: ruby-on-rails ruby ruby-on-rails-3 search controller

我的网站上有一个搜索表单,以此形式提交网址(这些是标记ID)

http://localhost:3000/tags?utf8=✓&q=2%2C12%2C44

它适用于第一个标签ID,但不适用于其他标签ID

  def self.search(query = {})
    output = self.scoped
    output = output.where(:id => query[:q])
  end

TagsController:

  def index
    @tags = Tag.search(params)
  end

1 个答案:

答案 0 :(得分:0)

当您希望查询具有多个匹配项时,

ActiveRecord::Base.where接受数组作为参数。要将查询参数转换为数组,可以使用split

output = output.where(:id => query[:q].split(','))