我正在尝试使用旧架构设置单表继承,但我很难过。这是表bms_codes的架构,继承自:
create_table "bms_codes", :id => false, :force => true do |t|
t.decimal "code_id", :null => false
t.string "code_group", :limit => 35, :null => false
t.string "code_name_short", :limit => 100
...
end
这是code.rb.我已经设置了列别名,因此有一个要继承的类型列。
class Code < ActiveRecord::Base
set_table_name :bms_codes
set_primary_keys :code_id, :code_group #composite keys using the composite_primary_keys gem
alias_attribute :id, :code_id
alias_attribute :type, :code_group
alias_attribute :description, :code_name_short
end
据我所知,inquiry_tracking_role.rb应该从代码中提取所有具有“查询跟踪角色”类型的记录。它是否正确?在控制台中,如果我键入InquiryTrackingRole.all,我得到的结果与Code.all相同。
class InquiryTrackingRole < Code
end
我正在尝试做什么,或者我们的架构是否过于富裕?
答案 0 :(得分:0)
ActiveRecord假设数据库属于应用程序,并且数据库将遵循ActiveRecord约定和假设。它不是为将任何架构映射到任何域模型而设计的。
如果要将架构映射到域模型,可以尝试使用DataMapper。