在我的项目中,我有两个模型,它们具有相同的属性、方法和相同的一切。
目前,它们位于 app/models/ 单独的 rb 文件中,并且有相当多的代码重复。
我想将所有代码导出到一个单独的文件中,并让两个文件引用它,并拥有模式 DRY 代码。
我尝试了以下方法,但没有奏效:
# app/models/order.rb
class Order < ActiveRecord::Base
before_save { self.version += 1 }
attr_accessible :order
attr_accessible :filled_date
validates :order, :presence => true
end
参考订单之一是:
# app/models/real_order.rb
class RealOrder < Order
belongs_to :User, inverse_of: :real_orders
end
但这不起作用,Could not find table 'orders'
当我尝试使用这些模型时,我得到了一个。
另外我认为这Orders
不是一个真正的模型,所以可能app/models
不是该文件的正确位置,尽管我不确定它应该在哪个目录中。
谢谢,
UPD1:我最终想要实现的结构是我有两个相同的数据库表,两个独立的模型基于相同的代码。我只想在一个单独的超类文件中编写一次这样的代码。所以我正在寻找 DRY 代码,而不是 DRY 数据库。