這個問題可能很愚蠢,但我總是用 C# 開發,現在我需要用 Ruby 開發。而且我真的不明白如何從另一個類呼叫方法。我的意思是,我有這個結構:
- model
|_________ my_model.rb
|_________ helper
|____ my_helper_class
my_model.rb
def self.create_new_ticket(member_to_update)
# I want to call here my_helper_class
MyHelperClass.generate_guid
end
my_helper_class :
class MyHelperClass
def generate_guid
return "So haaard"
end
end
而且我無法從其他班級訪問名為generate_guid的方法。我有這種型別的錯誤:
未初始化的常數
我想訪問靜態類或其他任何東西。initilize 方法也不起作用(給定引數問題??)
因此,由于我在 C# 中的習慣,我認為我理解 Ruby 和物件操作的壞處。
你能幫我嗎 ?有一些好的檔案或這里的例子嗎?
非常感謝你們。
uj5u.com熱心網友回復:
我認為你的錯誤很簡單。您generate_guid不是“靜態方法”或“類方法”。你必須把self它放在定義中,這將使它成為一個類方法。
另一件需要注意的重要事情是您已經在其中創建了/helper檔案夾,/model因此您必須在名為的模塊中實作助手類,該模塊的名稱Helper應與檔案夾名稱相同。
助手類應該是
module Helper
class MyHelperClass
def self.generate_guid
return "So haaard"
end
end
end
定義類方法的另一種方法是:
module Helper
class MyHelperClass
class << self
def generate_guid
"So haaard"
end
def some_other_class_method
"some thing"
end
end
end
end
因此,每當您必須呼叫靜態方法時,您都必須使用完整的范圍來呼叫它,例如Helper::MyHelperClass.generate_guid
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/489081.html
下一篇:如何在Ruby中對陣列進行排序
