[英]How to extend a model in an engine from the origin app in rails?
我在app / models / user.rb中有一個帶有用戶模型的應用程序。
現在,我在用戶類中編寫了一個需要其他方法的引擎。
class User < ActiveRecord::Base
# some code
end
當我使用其他方法將用戶模型添加到vendor / plugins / foo / app / models / user.rb時,這些方法是未定義的,Rails無法找到它們。
class User < ActiveRecord::Base
# some additional code
end
當我添加一個從User繼承的foo_user模型時,它可以工作,但這不是我想要的:(
class FooUser < User
# some additional code
end
如何從引擎中的原始App擴展User類?
在定義用戶模型時,您設置繼承方案,在第一種情況下,實例方法和類方法均從ActiveRecord :: Base繼承。
由於要使用自定義用戶模型中定義的方法,因此需要在單獨的類(在這種情況下為FooUser)中擴展此功能。
我不知道您為什么不相信不需要這種實現方法,因為這是Rails的設置方式。
實現一系列方法的另一種方法是猴子修補,這是關於此主題的另一個SO問題: Rails 3中的猴子修補
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.