我有一个用户模型,用户可以逐步在他们的个人资料(年龄,描述,头像等)上插入信息。只有在完成整个个人资料的情况下,才能在公共网站上查看这些用户。
什么是rails在限制查询时的最佳方式,而不会污染每次调用Active Record User模型。
是否有办法?User.all
默认返回带有这些约束的结果?
很多!
答案 0 :(得分:1)
您可以定义范围。
# user.rb
scope :complete, where("age IS NOT NULL", "description IS NOT NULL",...)
然后您可以执行User.complete
,它将获取与这些条件匹配的User对象。有关更多信息:
http://api.rubyonrails.org/classes/ActiveRecord/NamedScope/ClassMethods.html