[英]Extending Rails Engine Functionality
我是RoR的初學者,可以使用一些指導。 過去幾天,我一直在認真地討論這個stackoverflow答案。
但是不斷拋出的錯誤是: 'undefined method join'
我有一個名為OrderError的抽象模型。 OrderErrorDetails是我的另一個模型,用於在數據庫中實際存儲數據。 這里的OrderError抽象模型僅用於提供功能,不存儲任何內容。 :
module MyEngine
class OrderError
self.abstract_class = true
has_one :order_error_detail
def self.new
#my_code
end
end
end
因此,我嘗試而不是要求進行操作(上面的堆棧溢出鏈接)是將以下代碼放入我的應用程序的“訂單模型”中:
order_error MyEngine::OrderError.new
當我這樣做時,我能夠成功訪問引擎OrderError模型。 但是,我現在得到的錯誤是: 方法.order()必須包含參數。
我的希望是,一旦將引擎安裝到應用程序中,就可以使用多種方法調用引擎。 這將為引擎用戶提供一些默認功能。
我應該從抽象類開始嗎? 在我看來,答案是肯定的,因為我的抽象模型的唯一目的是提供可以使用的方法。 如果是這樣,一個人如何有效地提供對這些方法的訪問?
使用:
MyEngine::OrderError.new
是擴展引擎模型功能的正確方法。 在上面的示例中,“ new”方法的結構存在一些問題。 這歸結為引擎命名空間。 每個類都封裝在MyEngine的模塊(引擎名稱)中。 因此,您的引擎代碼是模塊化的,並且與其父應用程序代碼分開。 有關命名空間的最佳說明,請參見此處的《引擎入門指南》: http : //guides.rubyonrails.org/v3.2.13/engines.html#what-are-engines
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.