2012-08-06 2 views
0

Я пытаюсь настроить однонамерное наследование с унаследованной схемой, но мне тяжело. Вот схема для таблицы, 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 должен тянуть все записи из кодекса, которые имеют типа «Роль запрос Tracking». Это верно? В консоли, если я набираю InquiryTrackingRole.all, я получаю те же результаты, что и Code.all.

class InquiryTrackingRole < Code 
end 

Является ли то, что я пытаюсь сделать возможным, или наша схема слишком фубарная?

ответ

0

ActiveRecord делает предположение, что база данных принадлежит приложению, и что база данных будет следовать соглашениям и предположениям ActiveRecord. Он не предназначен для сопоставления любой схемы с какой-либо моделью домена.

Если вы хотите сопоставить свою схему с моделью своего домена, вы можете попробовать DataMapper.

Смежные вопросы