运维开发网

ruby-on-rails – Rails Reverse Polymorphic Association

运维开发网 https://www.qedev.com 2020-07-20 03:15 出处:网络 作者:运维开发网整理
我正在为其中一所学校建立一个收费模块.为了使费用模块工作,我想定义费用模板(结构),它将有不同类型的费用(入场费,图书馆费,体育费等),各种折扣和任何适用的税收.费用,折扣和税收被定义为不同的模型,因为它们包含不同的属性. 以下是各种型号…… 首先是费用模板 class FeeTemplate < ActiveRecord::Base has_many :fee_template_part
我正在为其中一所学校建立一个收费模块.为了使费用模块工作,我想定义费用模板(结构),它将有不同类型的费用(入场费,图书馆费,体育费等),各种折扣和任何适用的税收.费用,折扣和税收被定义为不同的模型,因为它们包含不同的属性.

以下是各种型号……

首先是费用模板

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来查找不同类型的细节.您将能够针对细节的不同行为设置不同的课程.我认为这是一个非常好的问题设计.

0

精彩评论

暂无评论...
验证码 换一张
取 消