2015-03-25 41 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