2
class Idea < ActiveRecord::Base
  attr_accessible :archived, :checked, :content, :note, :stared

  scope :stared, -> { where(stared: true) 
end

使用此代码,我如何测试是否staredIdea. 我想要这个效果

Idea.has_scope?(:stared) 
=> true
Idea.has_scope?(:unknown)
=> false
4

2 回答 2

1

你可以只使用respond_to吗?

Idea.respond_to?(:stared)

将产生真/假

于 2013-01-23T06:33:54.413 回答
0

有一个方法:valid_scope_name在内部也使用respond_to?+ 也是一个受保护的方法 + 给出了一个可怕的日志消息。它可以被调用为

Idea.send(:valid_scope_name?,:stared)
=> true

但这也将主要从 edgerails 中删除 - git commit

于 2013-01-23T07:00:35.373 回答