所以,如果我在整個應用程序中有一個多態關聯,有沒有辦法給它添加方法?例如,如果:post,:photo和:user都與以下內容相關聯:具有名爲:rankable的多態關聯的排名,我可以以某種方式在以下方面創建方法:可以通過post::photo或:user?我的猜測是,如果可能的話,我需要爲應用程序添加一個Rankable模型並在其中定義方法。那可能嗎?如果是這樣,並且我需要創建模型是正確的,那麼該模型會繼承哪個類,或者如何將其定義爲該多態關係?如何將方法添加到rails多態關聯?
1
A
回答
3
我不知道你是如何與模型做到這一點,但你可以很容易地混入添加方法:
module RankableMethods
def do_something_useful
...
end
end
class Post < ActiveRecord::Base
include RankableMethods
belongs_to :rankable, :polymorphic = true
end
p = Post.new
p.respond_to?(:do_something_useful) # true
1
你,因爲它適用於分離「多態」的概念ActiveRecord多態關聯,以及經典的OOP繼承意義上的「多態」。
第一種意義上的'Rankable'多態類型不存在,除非ActiveRecord中的數據庫約定允許一個表中的記錄引用多個可能的其他表中的記錄。如果你想在你的對象模型中更具體地表達這種抽象 - 第二種意義上的多態 - 你必須聲明一個獨立的類或模塊,以便你的'Rankable'ActiveRecords可以混合或繼承。
相關問題
- 1. Rails - 多對多關聯(將用戶添加到組)SQLite
- 2. Rails 4 - 多態關聯 - 多種關聯
- 3. Rails多態關聯加上路由
- 4. Rails:我如何以事實方式將has_many關聯添加到現有模型?
- 5. Rails 4多態關聯has_many
- 6. Rails多態關聯has_many
- 7. Rails 3多態關聯
- 8. Rails的多態關聯accepts_nested_attributes
- 9. Rails的:多態關聯
- 10. Rails多態關聯has_one/belongs_to
- 11. Rails中的多態關聯
- 12. Rails:包含多態關聯
- 13. Rails多態關聯錯誤
- 14. Rails的多態關聯+ fields_for
- 15. 如何將新條目添加到多個has_many關聯?
- 16. 將「關聯帳戶」(例如,Twitter,Facebook)添加到Rails 3網站
- 17. Rails的多態關聯:getter和setter方法
- 18. 如何在Ruby on Rails中將Gem中的多態關聯添加到現有模型中?
- 19. Ruby on Rails - 如何委派到多態關聯?
- 20. Rails 4多態關聯和關注
- 21. Rails中的動態多態has_many關聯
- 22. Rails無法將多態關聯呈現給XML?
- 23. grails:動態添加關聯
- 24. ActiveRecord :: EagerLoadPolymorphicError:無法加載多態關聯
- 25. Rails多表繼承和多態關聯
- 26. Ruby on Rails:多重多態關聯
- 27. 如何將方法添加到Rails 5中的現有類?
- 28. 加入對多態關聯
- 29. 如何添加關聯對象到uitapgesture?
- 30. 如何添加關聯到模塊?