ruby-on-rails - 如何为 Ruby on Rails 中的可选多态关系的调用提供虚拟值?

标签 ruby-on-rails ruby activerecord

如果我有以下类(class)

class Discount < ApplicationRecord
   belongs_to :coupon, polymorphic: true, optional: true

end

并且有一种情况,我想在将优惠券类别保留为零的情况下创建折扣,如何为调用类似行的客户类别提供值

@discount.coupon.code

无需在调用前添加检查?我希望能够根据 Discount 类中的参数指定 @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

关于ruby-on-rails - 如何为 Ruby on Rails 中的可选多态关系的调用提供虚拟值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62940633/

相关文章:

ruby-on-rails - Rails事件记录重复并保存失败

jquery - 自动隐藏 rails 中的 flash 消息

ruby - 获取局部变量的名称

ruby-on-rails - rails : validate uniqueness of two columns (together)

mysql - Active Record 数据库组织

ruby-on-rails - 我无法让 rails 插件 wicked_pdf 工作

ruby-on-rails - 我怎样才能 "bump"具有最新评论的帖子并且让没有评论的新帖子出现在 Rails 的顶部?

c++ - 从 ruby​​ 运行 C++ 程序

mysql - 一个神秘的 MySQL 选择查询

mysql - 我正在使用 Ruby on Rails,我想删除一个数据库条目。我可以将条目设为 "cut"并将所有较大的 ID 减一吗?