簡體   English   中英

如何從Rails的原始應用程序擴展引擎中的模型?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM