如何使用gem修复重复的模型名称

时间:2013-04-10 07:39:02

标签: ruby-on-rails ruby-on-rails-3

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

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

我认为如下:

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

我没有找到采用Way1的任何提示。

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

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

1 个答案:

答案 0 :(得分:0)

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

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

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