2014-09-25 54 views
0

我試圖做的類屬性,這裏就是我有:紅寶石attr_accessor(1 0)

class Base 
    class << self 
    attr_accessor :coll 
    end 
end 

class Post < Base 
    coll :posts 
end 

我得到一個錯誤:wrong number of arguments (1 for 0)

任何人都知道是怎麼回事?

回答

1

你想要做什麼? attr_accessor創建2個方法,在你的例子中:Base.coll和Base.coll =,所以像這樣的東西會工作:

class Base 
    class << self 
    attr_accessor :coll 
    end 
end 

class Post < Base 
    self.coll = :posts 
    puts coll.inspect #=> :posts 
end 
+0

啊,我想我誤解了這個概念。謝謝。 – daryl 2014-09-25 20:56:22

+0

您正在創建一個名爲'coll'的局部變量,它會影響getter方法。無論是二傳手還是吸氣者都不會被稱爲。 – 2014-09-26 06:15:07

+0

所以我想我需要用self.coll =:posts替換coll =:posts? – daremkd 2014-09-26 15:31:01