-1
我是新來的寶石,我想知道接下來,我可以調用一個方法在同一類,如:調用方法
class myClass
$myVar = inClass
def inClass
@value = (gets data from db)
end
end
如果有辦法做到這一點,可以有人請幫助我嗎?
我是新來的寶石,我想知道接下來,我可以調用一個方法在同一類,如:調用方法
class myClass
$myVar = inClass
def inClass
@value = (gets data from db)
end
end
如果有辦法做到這一點,可以有人請幫助我嗎?
你可以做如下
class MyClass
def in_class
@value = (gets data from db)
end
def call_inclass
$my_var = in_class # don't use global variable.
end
end
創建一個新的實例方法call_inclass
,並從那裏調用所需的類in_class
。你的一個將不起作用,因爲in_class
是一個實例方法,並且在class.. end
內部self
被設置爲該類。因此$myVar = in_class
將簡單地將錯誤描述爲沒有方法錯誤。因爲$myVar = in_class
它將被隱含解釋爲$myVar = self.in_class
,其中self
是MyClass
。 in_class
不是MyClass
的方法,而是MyClass
的實例的實例方法。
因此將方法調用包裝到另一個實例方法內部,如call_inclass
。
另一種方法是將in_class
作爲MyClass
的單例方法。然後它會工作。
class MyClass
# again don't use global variable, rather use
# class instance variable, @my_var
$my_var = in_class
def self.in_class
@value = (gets data from db)
end
end
謝謝你的幫助,我試過了你給我的兩個例子,但他們都沒有工作,他們都給我一個「無」的價值,即使這樣做後「@value = 2 」。我需要一個全局變量在所有視圖頁面中使用。 – user3272070