检查是否在类或实例上调用范围(作用域)

时间:2017-11-23 19:48:46

标签: ruby-on-rails

说我有一个范围:

class Post
  belongs_to: :user
  scope(:visible_for, ->(user = default_user) { where("<some SQL>") })
end

有没有办法在范围内检查它是否已被调用1.范围或2.未范围?

  1. some_user.posts.visible_for
  2. Post.visible_for
  3. 我希望自动限定的原因包括优化查询的WHERE posts.user_id = <user_id>,我希望只有优化的查询才是合法的。

1 个答案:

答案 0 :(得分:0)

我刚发现你可以在范围内调用scope_attributes,问题解决了。