2017-10-14 17 views
1

私は初心者だと私はどこ私はそれを表示する方法もRailsの中で次のように計算を置くとすべきであると思いまして。Railsの計算ロジック

@suplement.total_cost = @suplement.number_of_days * @suplement.daily_dosage_in_units * (@suplement.suplement_cost/@suplement.number_of_units) 

は、ここで私が参照していますテーブルです

create_table "suplements", force: :cascade do |t| 
t.string "name" 
t.integer "number_of_units" 
t.integer "daily_dosage_in_units" 
t.float "suplement_cost" 
t.float "total_cost" 
t.datetime "created_at", null: false 
t.datetime "updated_at", null: false 
t.integer "user_id" 
t.integer "number_of_days" 
end 

私はちょうどそれが正しく計算され、f.text_area :total_costに表示されますが、明らかにそれは私が望んでいないビューでこの計算をしようとしたが。ここで私はそれを置くしたかった方法ですが、それはTOTAL_COST以外のすべてを示しています

<div> Name: <%= suplement.name %></div> 
<div> Number of units: <%= suplement.number_of_units %></div> 
<div>Daily dosage in units: <%= suplement.daily_dosage_in_units %></div> 
<div>Number of days: <%= suplement.number_of_days %></div> 
<div>Supplement cost: <%= suplement.suplement_cost %></div> 
<div>Total cost: <%= suplement.total_cost %></div> 
+1

『明らかにそれは私が欲しかったものではありません』 - いいえ、これは(あなたが欲しいものを)まったく明らかではないではありません「tは@suplement変数にアクセス。 –

+0

明らかに、入力ではなく計算の出力であるため、テキスト領域に結果がないことを指していました。他の方法で助けてもらえますか? – nusound

答えて

2

あなたは、そのクラスでSuplementをtotal_attributeを定義することができます。この方法で、あなたは残りのすべての属性へのアクセス権を持っている、との合計は、1「計算」です:

class Suplement < ApplicationRecord 
    def total_cost 
    suplement_over_units = suplement_cost/number_of_units 
    dosage_per_days = number_of_days * daily_dosage_in_units 
    dosage_per_days * suplement_over_units 
    end 
end 

だけすることができますようにあなたの例のように、それは、ただの属性にアクセスするだろう、いくつかの変数を割り当て

def total_cost 
    number_of_days * daily_dosage_in_units * (suplement_cost/number_of_units) 
end 
+0

それはうまくいった。ありがとう! – nusound

+0

あなたが望むなら、あなたは答えを受け入れることができます@nusound。 –

+0

ええ、申し訳ありません、私はここから始めました。今まで私は何かをクリックすることは許されていないと思っていました。 :) 再度、感謝します! – nusound

関連する問題