我的紅寶石(on Rails的)類的樣子:Ruby類繼承或任何問題
類Foo 高清self.method1 someAction 結束
高清self.method2 someAction 結束
def someAction // doSmth end end
任何想法如何使這項工作或實現相同的行爲一些其他方式?
謝謝!
我的紅寶石(on Rails的)類的樣子:Ruby類繼承或任何問題
類Foo 高清self.method1 someAction 結束
高清self.method2 someAction 結束
def someAction // doSmth end end
任何想法如何使這項工作或實現相同的行爲一些其他方式?
謝謝!
如果some_action是適合作爲一個類的方法,我會做這樣的:
class Foo
def self.method1
some_action
end
def self.some_action
# do stuff
end
def some_action
self.class.some_action
end
end
如果方法1應該是一個方便的方法,然後我'd就像Hates_說的那樣。
class Foo
def self.method1
self.new.some_action
end
def some_action
# do stuff
end
end
對我的決定通常是some_action是否更實用的方法(如生成一個隨機密鑰,在這種情況下,我會選擇第一種形式),或者如果它是一個切入點,以更復雜的東西(就像解析器,在這種情況下,我會選擇第二種形式)。
無法從類方法調用實例方法,而無需實際類本身的實例。你能做到這樣:
class Foo
def self.method1
myFoo = Foo.new
myFoo.someAction
end
def someAction
//doSmth
end
end
感謝您的回答!然而,因爲someAction是一個幫手,我並不想爲它創造一個新的實例...然後一個很酷的想法給了我很大的啓發。我剛剛定義它旁邊的分類:)) 啊,愚蠢的我:/ – Mantas 2008-12-17 16:55:24
信息不足且不明確 – Chirantan 2008-12-17 16:48:59