Closed saulius closed 11 years ago
Ruby inheritance with Sequel models work in a weird way that is internal and unlikely to change. The provided STI plugin is not good enough, because it expects record type to be specified in the column and not identified by pattern. The problem:
Before:
[1] pry(main)> GoodsNomenclature.first => #<GoodsNomenclature @values={:goods_nomenclature_sid=>27623, :goods_nomenclature_item_id=>"0100000000", :producline_suffix=>"80", :validity_start_date=>1971-12-31 00:00:00 +0300, :validity_end_date=>nil, :statistical_indicator=>0, :created_at=>nil, :updated_at=>nil}> [2] pry(main)> Commodity.first => #<Commodity @values={:goods_nomenclature_sid=>72760, :goods_nomenclature_item_id=>"0101100000", :producline_suffix=>"80", :validity_start_date=>2002-01-01 00:00:00 +0200, :validity_end_date=>2011-12-31 00:00:00 +0200, :statistical_indicator=>0, :created_at=>nil, :updated_at=>nil}> [3] pry(main)> GoodsNomenclature.first => #<Commodity @values={:goods_nomenclature_sid=>27623, :goods_nomenclature_item_id=>"0100000000", :producline_suffix=>"80", :validity_start_date=>1971-12-31 00:00:00 +0300, :validity_end_date=>nil, :statistical_indicator=>0, :created_at=>nil, :updated_at=>nil}> [4] pry(main)> Heading.first => #<Heading @values={:goods_nomenclature_sid=>27624, :goods_nomenclature_item_id=>"0101000000", :producline_suffix=>"80", :validity_start_date=>1972-01-01 00:00:00 +0300, :validity_end_date=>nil, :statistical_indicator=>0, :created_at=>nil, :updated_at=>nil}> [5] pry(main)> GoodsNomenclature.first => #<Heading @values={:goods_nomenclature_sid=>27623, :goods_nomenclature_item_id=>"0100000000", :producline_suffix=>"80", :validity_start_date=>1971-12-31 00:00:00 +0300, :validity_end_date=>nil, :statistical_indicator=>0, :created_at=>nil, :updated_at=>nil}>
After:
[5] pry(main)> GoodsNomenclature.first => #<Chapter @values={:goods_nomenclature_sid=>27623, :goods_nomenclature_item_id=>"0100000000", :producline_suffix=>"80", :validity_start_date=>1971-12-31 00:00:00 +0300, :validity_end_date=>nil, :statistical_indicator=>0, :created_at=>nil, :updated_at=>nil}> [6] pry(main)> Commodity.first => #<Commodity @values={:goods_nomenclature_sid=>72760, :goods_nomenclature_item_id=>"0101100000", :producline_suffix=>"80", :validity_start_date=>2002-01-01 00:00:00 +0200, :validity_end_date=>2011-12-31 00:00:00 +0200, :statistical_indicator=>0, :created_at=>nil, :updated_at=>nil}> [7] pry(main)> GoodsNomenclature.first => #<Chapter @values={:goods_nomenclature_sid=>27623, :goods_nomenclature_item_id=>"0100000000", :producline_suffix=>"80", :validity_start_date=>1971-12-31 00:00:00 +0300, :validity_end_date=>nil, :statistical_indicator=>0, :created_at=>nil, :updated_at=>nil}> [8] pry(main)> Heading.first => #<Heading @values={:goods_nomenclature_sid=>27624, :goods_nomenclature_item_id=>"0101000000", :producline_suffix=>"80", :validity_start_date=>1972-01-01 00:00:00 +0300, :validity_end_date=>nil, :statistical_indicator=>0, :created_at=>nil, :updated_at=>nil}> [9] pry(main)> GoodsNomenclature.first => #<Chapter @values={:goods_nomenclature_sid=>27623, :goods_nomenclature_item_id=>"0100000000", :producline_suffix=>"80", :validity_start_date=>1971-12-31 00:00:00 +0300, :validity_end_date=>nil, :statistical_indicator=>0, :created_at=>nil, :updated_at=>nil}>
Ruby inheritance with Sequel models work in a weird way that is internal and unlikely to change. The provided STI plugin is not good enough, because it expects record type to be specified in the column and not identified by pattern. The problem:
Before:
After: