2011-01-30 108 views
2

我正在修改現有Rails應用程序的一部分以使用類表繼承gem(https://github.com/brunofrank/class - 表繼承)。一切都很好,除了我在我的超類中定義了一些實例方法 - Person,所有子類都需要能夠訪問。例如full_name,它返回連接的姓和名,或cite_name,它返回第一個姓和名。由於CTI gem實際上並沒有使用Ruby繼承(所有子類仍然繼承自ActiveRecord :: Base,並且gem做了一些時髦的巫術來將ActiveRecord字段鏈接在一起),所以我無法在子類中訪問這些方法創建。任何想法解決這個問題?我對STI並不感興趣,但我願意爲這個特定的CTI創業板分道揚and,或者看看其他解決方案。Rails類表繼承gem,人造繼承和缺少方法

回答

1

嘗試http://peterhamilton.github.com/citier,它基於CITIEsForRAILS,我分叉它&把它通過快速發展和其他各種變化。它修復了大多數(如果不是所有的)錯誤並且工作如此簡單。

+0

請讓我知道你如何繼續,想知道其他人的經驗! – 2011-05-02 20:59:10

0

只是把我的頭頂部,你看到在你的子類的遷移表,你需要有行:

create_table :videos, :inherits => :product do |t| 

,並在您的Model.rb文件

class Product < ActiveRecord::Base 
    acts_as_superclass # I'm guessing you might be missing this line?? 
    end 

    class Book < ActiveRecord::Base 
    inherits_from :product 
    end 
+0

oops。 create_table:books,... – horseshoe7 2011-02-14 16:43:02