2016-04-10 6 views
0

私は住人と他はの2つのモデルを持っています。です。モデルRailsの関連するオブジェクトに対して複数のインスタンスを生成する方法は?

手形 - >belongs_toの:住民

住民 - >にhas_many:法案

どのように私はすべての住民のための法案を生成することができますか?

は、今すぐ生成ボタンをクリックした後のようです。すべての居住者ごとに作成された請求書が必要です。住民

属性 - >START_DATE:日時、END_DATE:日時

> belongs_toの - 法案は3モデル

休暇モデルを使用して作成されます

rate_cardモデル - > belongs_to:ホステル

属性 - >ダイエット:整数、charge1:INT、charge2:intcharge3:int型

勘定モデル - > belongs_toの:常駐

属性 - >罰金:int、葉:離脱表との開始日の差

法案モデル - > belongs_toの:常駐

属性 - > FROM_DATE:日付、TO_DATE:日付、payable_amount:INT、is_paid:BOOL

法案が支払われる金額が含まれています

支払額:30 *ダイエット+ charge1 + charge2 + charge3 +罰金*葉

式を使用して生成することができます

それぞれの居住者ごとに請求書を作成する方法は? 私は考えが必要ですメソッドを作成してくれてありがとう!!

私を助けてください..あなただけのインスタンスを作成する場合のxD

+0

'Resident.all.each {| resident | resident.bills.create} '? – spickermann

+0

adminメソッドがcreateボタンのボタンを生成すると、住民は請求書を持っていなければなりません。 @sipkermann –

答えて

1

さて、あなたはこのような何か行うことができます。

bills = Resident.all.map {|resident| resident.bills.create } 

をして作成した法案の配列を取得します。

+0

これはうまくいきますが、 'residents'が大きなテーブルの場合には、たくさんのメモリを使います。 'Resident.find_each {| resident |新たに作成された請求書の集まりが必要ない場合には、resident.bills.create}を呼び出します。 –

-2

は、私はそれがすべての住民のための法案を生成したいと思う:

Resident.all.each do |r| 
    bill = Bill.new({:resident_id => r.id, :amount => value, :description => "Yadda yadda"}) 
    bill.save 
end 

それは、右の属性を追加し、それはおそらくコントローラへのparamsとして請求書情報を渡しているようで確認する必要があります。

関連する問題