有没有办法有条件地将查询方法附加到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
答案 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
至于我 - 我在我的项目中使用了这种技术。希望它可以帮到你。