2011-07-13 13 views
0

親モデルから通貨を継承する方法を教えてもらえますか?money gem:親モデルから通貨を継承

私はお金の宝石(https://github.com/RubyMoney/money)を使用し、2つのモデル(マーケットとトレードミリット)を持っています。

市場の価格は定期的に更新され、同じ価格のトレードミミックがあればユーザーに通知されます。

市場はすでに通貨が保存されているので、私はtradelimitモデル(乾燥していない)で再びそれを保存したいいけない:私は親から今通貨を継承することができますどのように

class Market << AR 
    composed_of :price, 
    :class_name => "Money", 
    :mapping => [%w(price_cents cents), %w(currency currency_as_string)], 
    :constructor => Proc.new { |cents, currency| Money.new(cents || 0, currency || Money.default_currency) }, 
    :converter => Proc.new { |value| value.respond_to?(:to_money) ? value.to_money : raise(ArgumentError, "Can't convert #{value.class} to Money") } 
    ... 
end 

#tradelimit.rb 

class Tradelimit << AR 
    composed_of :price, 
    :class_name => "Money", 
    :mapping => [%w(price_cents cents), %w(currency currency_as_string)], 
    :constructor => Proc.new { |cents, currency| Money.new(cents || 0, currency || Money.default_currency) }, 
    :converter => Proc.new { |value| value.respond_to?(:to_money) ? value.to_money : raise(ArgumentError, "Can't convert #{value.class} to Money") } 
    ... 
end 

(市場)モデル? 私はtradelimitモデルの通貨メソッドをオーバーライドしようとしましたが、これはうまく動作します..

何か提案がありますか?ありがとう!

EDIT:

またはこの機能を提供するために、(composed_of機能なし)方法はありますか?

+0

をお金レールの宝石をチェックしてください。あなたの問題を解決するかもしれません。 – semmons99

答えて

0

あなたが試してみました:

class Market < AR 
    #use Money as a mixin 
    include Money 
... 

end 

#Now Tradelimit should inherit all from Market 
class Tradelimit < Market 
+0

今は試してみましたが、それは他の関係との間にエラーの混乱を生むので、うまくいきません。 :/ – Lichtamberg

+1

また、Tradelimitはマーケットではありません。これは継承をどのように使用したいかはわかりません。 –

関連する問題