ActiveRecord关系:附加查询方法

时间:2011-11-08 17:09:49

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

有没有办法有条件地将查询方法附加到ActiveRecord :: Relation?

例如,我正在搜索用户,但我只是在某些条件下搜索中包含的last_name。您可以将查询附加到ActiveRecord :: Relation对象吗?

i_want_to_search_for_last_names = true
pending_relation = User.where(:first_name => "John")
pending_relation << where(:last_name => "Doe") if i_want_to_search_for_last_names
@users = pending_relation.all

1 个答案:

答案 0 :(得分:3)

你的代码几乎是正确的,除了一些东西。在这里你可以做什么(不要忘记:你处理ActiveRelation):

i_want_to_search_for_last_names = true
@users = User.where(:first_name => "John")
@users = @users.where(:last_name => "Doe") if i_want_to_search_for_last_names

至于我 - 我在我的项目中使用了这种技术。希望它可以帮到你。