具有相同名称的ruby类的Active Record模型

时间:2018-03-09 12:52:36

标签: ruby-on-rails ruby activerecord

为了分离东西,我希望有一个Order类和一个模型Order。在这里我的课程:

class Order < ApplicationRecord
end

class Order
end

我怎样才能做到这一点?有诀窍吗?

我不想这样做:

module Something
    class Order
    end
end

我更喜欢为模型设置另一个名称而不是更改我的商务类名称(订单)

注意

如果你知道“干净的架构”原则,鲍勃·C·马丁,这就是我尝试这样做的原因。

修改:

我找到了一种方法,但不确定是否是最干净的方式:

class OrderInDb < ApplicationRecord
  self.table_name = "orders"
end

1 个答案:

答案 0 :(得分:1)

如果您不想更改基础表名,那么您可以这样做:

class CustomerOrder < ApplicationRecord
  self.table_name = 'orders'
end

您可能还想更改您拥有的任何关联。例如:

class Customer < ApplicationRecord
  has_many :orders, class_name: 'CustomerOrder', inverse_of: :customer
end