我的方案
- >用户有很多机器
- >机器可以有5种类型
- >每种机器类型都有自己的处理机制。
- >我想使用type列来查看此行所属的类。 (Rails继承方法),如此链接Link中所述。
我的问题
- >从数据库访问机器,例如machine = Machine.first
- >然后调用machine.process(应根据此机器的类型调用此进程方法)。 (我期待这里有一些类型的铸造。)
注意:每种机器类型的流程实现都与其他机器类型不同,并且在自己的类中实现。
我想知道实现这个的最佳方法。任何帮助表示赞赏。
答案 0 :(得分:1)
您可以使用具有个人逻辑的公共逻辑和子类来实现父类Machine
。
rails g model machine type:string customer_id:integer
mkdir app/models/machines
touch app/models/machines/bmw.rb
touch app/models/machines/renault.rb
...
应用程序/模型/ machine.rb
class Machine < ActiveRecord::Base
belongs_to :customer
...
def country
raise NotImplementedError
end
end
应用程序/模型/设备/ bmw.rb
class Bmw < Machine
...
def country
:germany
end
end
应用程序/模型/设备/ opel.rb
class Renault < Machine
...
def country
:france
end
end
例如:
Bmw.first
Machine.first
Renault.first.customer
Machine.all.sample.country
,此方法将从任何子类调用。答案 1 :(得分:0)