Ruby on rails 棘手的Rails 4 ActiveRecord继承
我创建了几个模型,如下所示。 基本模型是TransactionType和TransactionItem ExpenseType和IncomeType派生自TransactionType。 费用和收入来自TransactionItemRuby on rails 棘手的Rails 4 ActiveRecord继承,ruby-on-rails,ruby,inheritance,activerecord,single-table-inheritance,Ruby On Rails,Ruby,Inheritance,Activerecord,Single Table Inheritance,我创建了几个模型,如下所示。 基本模型是TransactionType和TransactionItem ExpenseType和IncomeType派生自TransactionType。 费用和收入来自TransactionItem class TransactionType < ActiveRecord::Base scope :expense_types, -> { where(tran_type: 'ExpenseType') } scope :income_type
class TransactionType < ActiveRecord::Base
scope :expense_types, -> { where(tran_type: 'ExpenseType') }
scope :income_types, -> { where(tran_type: 'IncomeType') }
self.inheritance_column = "tran_type"
validates :name, uniqueness: true
end
class ExpenseType < TransactionType
end
class IncomeType < TransactionType
end
class TransactionItem < ActiveRecord::Base
validates :note, length: { in: 2..255 }
end
class Expense < TransactionItem
belongs_to :expense_type
validates :expense_type, presence: true
end
class Income < TransactionItem
belongs_to :income_type
validates :income_type, presence: true
end
如果有人能分享你解决这个问题的想法,那就太好了
谢谢,
Masc如果费用属于ExpenseType,则费用表需要一个整数属性Expense\u type\u id 您可以将其添加到
rails g migration AddExpenseTypeToExpense expense_type_id:integer
然后rakedb:migrate
这同样适用于收入和收入类型在
费用
表上是否有费用类型id
列?这对于单表继承是否正确?
rails g migration AddExpenseTypeToExpense expense_type_id:integer