1

私はこのパターンを実装しようとしています

class A
    Mongoid::Document

    belongs_to :price

    def price
      self[:price] || calculate_price
    end

    def calculate_price
       #Some logic
    end    
end

つまり、ユーザーは A に価格を強制するか、計算された価格を取得できます。問題は、セッターが期待どおりに機能しないことです。

2.0.0-rc2 :013 > a = A.new
 => #<A _id: 5215b3321d41c89a1f000001, price_id: nil> 
2.0.0-rc2 :015 > a.price = Price.new
 => #<Price _id: 5215b3451d41c89a1f000002, i(inclusive_tax): nil, e(exclusive_tax): nil, tax_id: nil> 
2.0.0-rc2 :016 > a.price
 => "5215b3451d41c89a1f000002"

物事が期待どおりに機能するようにセッターをオーバーライドする方法は何ですか?

追加してみました

def price=(val)
   super(val)
end

superしかし、セッターにはありません。

ヒントはありますか?

4

1 に答える 1