0

私は次のモデルを持っています(venmasはレガシーデータベースなので変更できません):

models/venmas.rb
class Venmas < ActiveRecord::Base
  establish_connection "turnkey"
end

models/yard.rb
class Yard < ActiveRecord::Base
end

私ができるようになりたい:

Yard.first.venmas.first # to get the first record of venmas for that yard

ヤードは次のようになります。

#<Yard id: 1, name: "nyssa", created_at: "2012-08-07 16:58:02", updated_at: "2012-08-07 16:58:02">

とVenmas:

#<Venmas VENDOR_NUMBER: "  ", ... , yard: "nyssa"> # there are a lot of columns in this one and they aren't important.

私がこれをinflections.rbに持っているもう1つのモンキーレンチ:

ActiveSupport::Inflector.inflections do |inflect|
  inflect.irregular 'venmas', 'venmas'
end

簡単にできる場合はこれを削除できますが、すべてのレガシーテーブルから読み取るだけなので、これをすべてのレガシーテーブルで実行します。

これはforeign_keyを割り当てることで実行できると確信していますが、これらを関連付ける正しい方法が本当にわかりませんか?

足りないものがあれば教えてください。

4

1 に答える 1

0

理解した

models/venmas.rb
class Venmas < ActiveRecord::Base
  establish_connection "turnkey"
  belongs_to :yard, foreign_key: :yard, primary_key: :name
end

models/yard.rb
class Yard < ActiveRecord::Base
  has_many :venmas, foreign_key: :yard, primary_key: :name
end

より良い解決策をまだ開いています...

于 2012-09-18T19:58:02.710 に答える