Rails在ActiveRecord上进行轮胎搜索:多个字段的关系

时间:2013-12-01 11:49:06

标签: ruby-on-rails ruby ruby-on-rails-3 elasticsearch tire

我有一组从数据库查询的ActiveRecord模型。我想在上执行从ActiveRecord返回的Relation对象的轮胎搜索,例如:

class Model_1
  has_many :model_2
end

class Model_2
  attr_accessible :attr_1, :attr_2, :attr_3
  belongs_to :model_1
end

class Model2Controller
  def index
    @model_2s = @model_1.model_2s

    # How can I query single or multiple fields here?
    @model_2s.search :query => { :attr_1 => params[:q] }
  end
end

我想使用单个或多个字段查询ActiveRecord:Relation。我想要查询的哪些字段(:attr_1:attr_2:attr_3)是动态的,因此如果我可以向查询方法发送Hash,那就太好了。

这样的事情可能吗?

1 个答案:

答案 0 :(得分:0)

不是100%肯定你在问什么,但如果它是“我想找到有参数x,y和z的model_2s等于特定的东西”,那么你可以使用Ruby Array #Select

model_2s_you_care_about = @model_2s.select{ |e| e.attr_foo == "something" && e.attr_bar == "whatever" && e.attr_baz == "the last thing" }

如果这不是您的要求,请稍微改写您的问题。