Ruby on rails 如何使用gem修复重复的模型名
我尝试使用rails应用程序中的gem。 在gem中,模型中使用了“Receipt”类。 但是我已经在我的应用程序中使用了“Receipt”类 在本例中,模型和表名是重复的。 那么,修复重复模型名称的最佳方法是什么 我认为:Ruby on rails 如何使用gem修复重复的模型名,ruby-on-rails,ruby-on-rails-3,Ruby On Rails,Ruby On Rails 3,我尝试使用rails应用程序中的gem。 在gem中,模型中使用了“Receipt”类。 但是我已经在我的应用程序中使用了“Receipt”类 在本例中,模型和表名是重复的。 那么,修复重复模型名称的最佳方法是什么 我认为: 方法1:在gem中重命名模型/表名称 方法2:在我的应用程序中重命名模型/表名称 我没有找到采取这种方式的任何线索 如果我采用Way2,我将重命名表名,然后在整个应用程序中重命名模型名。如果可能的话,我想避免这种方式,因为我已经在很多地方使用了“收据” 我是否必须采用W
- 方法1:在gem中重命名模型/表名称
- 方法2:在我的应用程序中重命名模型/表名称
我是否必须采用Way2,或者是否有其他好的方法来修复重复的模型名称?正如您所说,由于它们是ActiveRecord类,因此它们具有相同的表,并且它们将在应用程序的命名空间中发生冲突 您可以使用模块来避免名称类冲突,也可以更新gem或您的代码来为类使用不同的名称
如果您选择将类放在模块中,对于数据库中的表,您可以使用该类使用不同的名称,而不是ActiveRecord所期望的默认名称。谢谢,正如您所提到的,我想我将类放在模块中,并使用set\u table\u name。但我必须在整个应用程序中将我的类从Receipt更改为MyApp::Receipt。我别无选择,只能这么做吗?据我所知,没有。在一个gem中,有一个库一直调用Foo类,还有你自己的代码也调用这个类。没有一种神奇的方法可以避免类名冲突,但是,您可以做的是将所有代码(或gem代码)封装在一个模块中,以避免类名冲突。但还是有很多工作要做。非常感谢。我将尝试在我的应用程序中重命名它。