我有两节课

class Cart
  belongs_to :coupon
end

class Coupon
  has_many :carts

  def discount
  end
end

我执行
cart = Cart.last.coupon.discount

如果不将购物车作为参数传递,我如何知道它在折扣方法中属于哪个购物车?

最佳答案

你不能用优惠券我建议你在购物车内代理折扣。

class Cart
  belongs_to :coupon
  delegate :discount, to: coupon
end

class Coupon
  has_many :carts

  def discount
  end
end

那你就可以
discount = cart.discount

但是,请注意委托是一个rails方法我假设,当您使用的是属于并标记ruby on rails时,您就在rails中。但是,如果没有,这也会起作用:
class Cart
  belongs_to :coupon

  def discount
    coupon.discount if coupon
  end
end

关于ruby - 了解Ruby中的方法调用,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/31469668/

10-16 19:30