2015-03-25 85 views
1

Moped::Collection对象实例有明显的区别。 Item.collection对象的检查是如下(添加的行结束):这两个类实例有什么区别?

#<Moped::Collection:0x007fb381e3ed10 
    @database=#<Moped::Database:0x007fb381e3fa30 
    @name="production_datagatherer", 
    @session=<Moped::Session 
     seeds=[ 
     <Moped::Node resolved_address="22.22.22.22:43700">, 
     <Moped::Node resolved_address="22.22.22.22:43700"> 
     ] 
     database=production_datagatherer 
    > 
    >, 
    @name="items" 
> 

Item.collectionMoped::Collection对象有以下实例变量:

@database: Moped::Database object 
@name: "items" 

@database变量具有#<Moped::Database:0x007fb381e3fa30@session实例变量具有Moped::Session格式对象,但格式不同。

  • @session的值是不是一个对象?
  • 如果它们不是实例变量(seedsdatabase),它们有什么样的变量。

回答

1

它实际上更简单。 Moped::Sessionimplements inspect method

def inspect 
    "<#{self.class.name} seeds=#{cluster.seeds} database=#{current_database_name}>" 
end 

这就是为什么它看起来不同。默认情况下,inspect包含实例变量,与Moped::Collection一样。

inspect方法在使用p方法打印时被调用,或返回到控制台。你可以阅读约inspecthere

+0

很好的解释。谢谢! – borjagvo 2015-03-25 11:14:21