0
扩展通用模型我有一个通用的Service
模型,其中包含几个通用函数,其中包括几个将被'实际服务'覆盖。扩展从ActiveRecord :: Base
service.rb
class Service < ActiveRecord::Base
def get_line_items
raise "Not Implemented"
end
end
我再有扩展Service
模型的模型:
misc_service.rb
class MiscService < Service
attr_accessible :retail_price
def get_line_items
return [{"Misc Service - 1" => retail_price}]
end
end
但是,试图访问MiscService时模型在rails控制台中,我得到错误:
:001 > service = MiscService.first
ActiveRecord::StatementInvalid: Mysql2::Error: Table 'devdb.services' doesn't exist: SHOW FULL FIELDS FROM `services`
我可以看到发生的事情,因为它的扩展ActiveRecord::Base
的服务模式,所以是不是我可以在Service
模型做造成任何模型扩展它,而不是使用自己的表?我宁愿从Service
模型中发生这种情况,而不必在扩展它的任何模型中明确定义它。
我不希望这是一个'Service'表现在或曾经 - 我只是想'MiscService'和任何其他服务我会在以后定义继承全部从方法'服务',同时使用他们自己的表,所有这些表都将有独特的模式。 – bdx
如果您只想使用方法,请使用模块并包含/扩展它们,然后模型将像服务一样行事。不要使用继承。 –
这似乎很明智。谢谢 – bdx