2011-01-29 14 views
0

いくつかのフィールドにActiveRecordアグリゲーターを使用することを検討しています。ActiveRecord集計とform_for

集約属性がform_forと入力フィールドでどれくらいうまく機能するかはわかりません。つまり、集約された属性の入力フィールドはどのように生成されますか(読み込み専用なので)

同様に、http://api.rubyonrails.org/classes/ActiveRecord/Aggregations/ClassMethods.htmlの例を取ることができます。

class Customer < ActiveRecord::Base 
    composed_of :balance, :class_name => "Money", :mapping => %w(balance amount) 
    composed_of :address, :mapping => [ %w(address_street street), %w(address_city city) ] 
    end 

class Money 
    attr_reader :amount, :currency 

    def initialize(amount, currency = "USD") 
    @amount, @currency = amount, currency 
    end 
end 

ここで、顧客が自分の残高を入力できるフォームがあるとします。あなたはそのform_forをどのようにしてバランスのための入力フィールドを生成しますか?また、残高の検証はどこに属していますか?大量援助は機能しますか?

答えて

1

アサインメントの割り当ては(通常のアトリビュートライターメソッドを使用して)機能しますが、アグリゲータクラスのinitializeメソッドでは実行されていないようです。

通常、検証はCustomerクラスでも設定できます。