我可以在 Rails 中拥有一个名为 "Transaction" 的模型吗?



我们希望有一个名为"Transaction"的模型,它对应于我们在Rails数据库中的数据库的"事务"表,但这将与现有的ActiveRecord事务功能发生冲突。

除了为事务模型想出一个不同的名称(我不想这样做)之外,我还能做些什么来支持该模型吗?

我会说不。我尝试创建一个名为 Transaction 的模型,当我尝试与它进行一些关联时,我遇到了"活动记录"错误。

您尝试在模型上定义名为事务的关联 项,但这将与已定义的方法事务冲突 按活动记录。请选择其他关联名称。

我遇到了这个堆栈溢出问题,想知道同样的事情,但根据我现在的经验,我不推荐它——看起来Transaction可能是一个保留关键字。

我不能肯定地说,但我认为应该没问题。一般来说,Rails非常积极地告诉你什么时候尝试使用一个会冲突的名字,所以为什么不尝试一下,看看会发生什么呢?

如果表名(与模型名称相对)被证明是一个问题,则始终可以在模型中使用self.table_name = "some_other_table_name"(如活动记录基础知识中所述)为其提供要使用的另一个表的名称。

是的,你可以,我已经用这个名字作为模型并且工作正常。

如果您担心 Rails 上的transactions,它们是 ActiveRecord::Transactions 类的方法。

http://api.rubyonrails.org/classes/ActiveRecord/Transactions/ClassMethods.html

最新更新