4

Rails アプリケーションでging/mailboxerである gem を使用しようとしています。gemでは「領収書」クラスをモデルに使用しています。しかし、私はすでにアプリケーションで「領収書」クラスを使用しています。

この場合、モデル名とテーブル名が重複しています。重複したモデル名を修正する最良の方法は何ですか?

以下だと思います。

  • Way1: gem のモデル/テーブル名を変更するには
  • Way2: アプリケーションでモデル/テーブル名を変更するには

Way1を採用する手がかりが見つかりませんでした。

Way2 を採用する場合は、アプリケーション全体でテーブル名を変更してから、モデル名を変更します。私はすでに多くの場所で「領収書」を使用しているので、できればこの方法は避けたいです。

Way2を採用する必要がありますか、または重複したモデル名を修正する他の良い方法はありますか?

4

1 に答える 1

0

おっしゃる通り、ActiveRecordのクラスなので同じテーブルを持ち、アプリケーションの名前空間で衝突します。

モジュールを使用して名前クラスの競合を回避するか、gem またはコードを更新してクラスに別の名前を使用することができます。

クラスをモジュール内に配置することを選択した場合、データベースのテーブルに対して、set_table_nameを使用して、ActiveRecord が期待するデフォルトの名前の代わりに、そのクラスに別の名前を使用できます。

于 2013-04-10T07:43:58.153 に答える