class Idea < ActiveRecord::Base
attr_accessible :archived, :checked, :content, :note, :stared
scope :stared, -> { where(stared: true)
end
使用此代码,我如何测试stared
上是否定义了范围(例如Idea
)。我希望有这种效果
Idea.has_scope?(:stared)
=> true
Idea.has_scope?(:unknown)
=> false
答案 0 :(得分:1)
您可以使用respond_to?
Idea.respond_to?(:stared)
将产生真/假
答案 1 :(得分:0)
方法:valid_scope_name在内部也使用respond_to?
+也是受保护的方法+给出了可怕的日志消息。它可以作为
Idea.send(:valid_scope_name?,:stared)
=> true
但这也大部分都会从边缘栏杆上移除 - git commit