在Ruby中,在一个类方法中,self是类还是实例?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (22)

下面的内容会在Rails中工作吗?

class Post < ActiveRecord::Base
  def self.cool_post
    self.find_by_name("cool")
  end
end
提问于
用户回答回答于

这是正确的。self类方法内部是类本身。(也在类定义中,例如selfdef self.coolpost)

class Foo
  def self.bar
    puts self.inspect
  end
end

Foo.bar  # => Foo
用户回答回答于
class Test
    def self.who_is_self
        p self
    end
end

Test.who_is_self

class Post < ActiveRecord::Base
   named_scope :cool, :conditions => { :name => 'cool' }
end

Post.cool

扫码关注云+社区