4

我尝试在我的 Rails 应用程序中使用ging/mailboxer的 gem。在 gem 中,模型中使用了“Receipt”类。但是我已经在我的应用程序中使用了“Receipt”类。

在这种情况下,模型和表名是重复的。那么修复重复模型名称的最佳方法是什么?

我认为以下:

  • Way1:重命名gem中的模型/表名
  • Way2:在我的应用程序中重命名模型/表名

我没有找到任何采用 Way1 的线索。

如果我采用 Way2,我将在整个应用程序中重命名表名,然后重命名模型名。如果可能的话,我想避免这种方式,因为我已经在很多地方使用了“收据”。

我必须采用Way2,还是有其他修复重复型号名称的好方法?

4

1 回答 1

0

正如您所说,由于它们是 ActiveRecord 类,因此它们具有相同的表,并且它们将在您的应用程序的命名空间中发生冲突。

您可以使用模块来避免名称类冲突,或者您可以更新 gem 或您的代码以使用不同的类名称。

如果您选择将类放在模块中,对于数据库中的表,您可以使用set_table_name为该类使用不同的名称,而不是 ActiveRecord 期望的默认名称。

于 2013-04-10T07:43:58.153 回答