我们想要一个名为" Transaction"这对应于我们的"交易"我们在Rails中的数据库表,但这将与现有的ActiveRecord事务功能冲突。
除了为交易模型提出不同的名称(我不想这样做)之外,我还能做些什么来支持这个模型吗?
答案 0 :(得分:3)
我会说不。我试图创建一个名为Transaction
的模型,当我尝试与它做一些关联时,我得到了一个Active Record错误。
您尝试在模型上定义名为transaction的关联 项目,但这将与已定义的方法事务冲突 通过Active Record。请选择其他关联名称。
我登陆这个Stack Overflow问题想知道同样的事情,但根据我的经验现在我不推荐它 - 看起来Transaction
可能是一个保留的关键字。
答案 1 :(得分:0)
我不能肯定地说,但我认为它应该没问题。一般来说,当你试图使用一个冲突的名字时,Rails非常主动地告诉你,为什么不尝试一下,看看会发生什么?
如果表格名称(而不是型号名称)证明是个问题,您可以随时在模型中使用self.table_name = "some_other_table_name"
(如Active Record Basics中所述)为其命名另一个要使用的表。
答案 2 :(得分:0)
是的,你可以,我已经将该名称用于模型并且正常工作。
如果您关注Rails上的transactions
,它们是ActiveRecord :: Transactions类的方法。
http://api.rubyonrails.org/classes/ActiveRecord/Transactions/ClassMethods.html