如何为 Rails 上 Ruby 中可选多态关系的调用提供虚拟值?
How to provide dummy values to a call to an optional polymorphic relationship in Ruby on Rails?
如果我有以下class
class Discount < ApplicationRecord
belongs_to :coupon, polymorphic: true, optional: true
end
并且有一种情况,我想在留下优惠券 class 的同时创建折扣,我如何才能向客户 class 提供价值,这些客户 class 调用了像 [=15= 这样的行]
@discount.coupon.code
无需在调用前添加检查?我希望能够根据 Discount class.
中的参数指定 @discount.coupton.code
等调用返回的默认值
在 rails 中有没有简单的方法来做到这一点?
应该可以覆盖getter。像这样...
class Discount < ApplicationRecord
belongs_to :coupon, polymorphic: true, optional: true
def coupon
unless some_condition
self[:coupon]
else
OpenStruct.new(code: 'a_non_coupon_discount')
end
end
end
如果我有以下class
class Discount < ApplicationRecord
belongs_to :coupon, polymorphic: true, optional: true
end
并且有一种情况,我想在留下优惠券 class 的同时创建折扣,我如何才能向客户 class 提供价值,这些客户 class 调用了像 [=15= 这样的行]
@discount.coupon.code
无需在调用前添加检查?我希望能够根据 Discount class.
中的参数指定@discount.coupton.code
等调用返回的默认值
在 rails 中有没有简单的方法来做到这一点?
应该可以覆盖getter。像这样...
class Discount < ApplicationRecord
belongs_to :coupon, polymorphic: true, optional: true
def coupon
unless some_condition
self[:coupon]
else
OpenStruct.new(code: 'a_non_coupon_discount')
end
end
end