我正在为其中一所学校建立一个收费模块.为了使费用模块工作,我想定义费用模板(结构),它将有不同类型的费用(入场费,图书馆费,体育费等),各种折扣和任何适用的税收.费用,折扣和税收被定义为不同的模型,因为它们包含不同的属性.
以下是各种型号……
首先是费用模板
class FeeTemplate < ActiveRecord::Base has_many :fee_template_particulars end
然后是FeeParticulars ..
class FeeParticular < ActiveRecord::Base belongs_to :fee_template belongs_to :particulars, :polymorphic => true end
现在是费用,折扣和税收模式
class Fee < ActiveRecord::Base has_many :fee_particulars, :as => particulars end class Discount < ActiveRecord::Base has_many :fee_particulars, :as => particulars end class Tax < ActiveRecord::Base has_many :fee_particulars, :as => particulars end
从本质上讲,FeeTemplateParticular的数据库表将有一个类型列来存储费用/折扣/税的类型和id记录.
想要问你们关于我必须实施的方案的几个问题.
>这种情况的方法(多态)是否有益?
>如果上面的情况还可以,并且知道多态关联是单向运作的,但就我而言,我必须从费用细节中找到每种类型费用/折扣/税的细节,而不是相反.怎么办?>有没有更好的方法来解决这个问题.提前致谢.
是的,这很好.你有has_many的field_particular来查找不同类型的细节.您将能够针对细节的不同行为设置不同的课程.我认为这是一个非常好的问题设计.
精彩评论