【发布时间】:2015-08-19 15:57:20
【问题描述】:
我的主要模特:
class Coupon < ActiveRecord::Base
include Concerns::CouponDistribution
end
相关的关注类:
module Concerns::CouponDistribution
extend ActiveSupport::Concern
included do
after_create :create_coupons_for_existing_users
end
def create_coupons_for_existing_users
#
end
end
现在我有一个继承自优惠券模型的子模型“discounted_coupon.rb”:
class DiscountedCoupon < Coupon
end
我根据 STI 要求在我的主模型中添加了一个列 type:http://api.rubyonrails.org/classes/ActiveRecord/Inheritance.html
我的目标:
如果我创建一个新的DiscountedCouponrecord,我想忽略关注“CouponDistribution”。
所以我在我的关注中写了这个:
after_create :create_coupons_for_existing_users unless self.type == "DiscountedCoupon"
绘制错误:
# 的未定义方法“类型”
还有其他方法可以实现我的目标吗?例如。在我的子模型中明确跳过/忽略关注点?
【问题讨论】:
标签: ruby-on-rails single-table-inheritance