0

特別なケースでは不可能なため、レールの命名規則に従わないプロジェクトがあります。

シナリオ: Foo というモデルがあり、このモデルのデータベース テーブルは example_foos です。Bar というモデルがあり、このモデルのデータベース テーブルは example_bars です。

モデル FooBar を使用して、これら 2 つのモデル間に an:m 関連付けを作成したいと考えています。このモデルのデータベース テーブル名は ExampleFooExampleBars です。

さて、私の質問..モデルで has_many throught 関連付けを指定するにはどうすればよいですか? 普通にやってみると、モデル名とテーブル名が違うのでエラーになってしまいます..

4

2 に答える 2

1

関連付けはクラス名を参照しているため、次のようになります。

class Foo < ActiveRecord::Base
  set_table_name 'example_foos'
  has_many :bars
end

class Bar < ActiveRecord::Base
  set_table_name 'example_bars'
  belongs_to :foo
end
于 2012-05-21T20:25:31.403 に答える
0

モデルとテーブルの名前が異なる場合は、次のことができます

class Foo <ActiveRecord::Base
  set_table_name "example_foos"
end

Railsの慣例に従って残りの協会

于 2012-05-21T20:25:03.307 に答える