如果這看起來像一個非常簡單(太簡單)的問題,我很抱歉,但我正在努力找到解決這個問題的方法。從控制器呈現一個簡單的計算
我需要根據數據計算基礎代謝率,並將其輸入到體模型中並將其呈現在我的顯示視圖中。問題是我可以在視圖中運行計算,但當然,這不是一個正確的方法。
<%= ((13.397*@user.bodies.last.weight)+(479.9 * @user.bodies.last.height)-(5.677 * @user.bodies.last.age)+(88.362)) * (1 - (@user.bodies.last.fat/100.00)) %>
此代碼片段位於饋送Body#show view的部分內容中。當然,我希望在控制器級別完成這些工作。
所以我寫了我的bodies_controller的方法,看起來像這樣:
# Calculate Basal Metabolic Rate for Males
def bmr
@user = User.find(params[:user_id])
@bmr = ((13.397 * @user.bodies.last.weight) + (479.9 *
@user.bodies.last.height) - (5.677 * @user.bodies.last.age) +
88.362) * (1 - (@user.bodies.last.fat/100.00))
end
當嘗試這個簡單的計算結果拉進我的身體#秀視圖像這樣:<%= @bmr %>
沒有任何顯示。此外,在控制檯中鍵入@bmr將返回NIL。我如何將Body屬性(Weight,age,height ....)添加到方法中?
對不起,如果這個問題聽起來很愚蠢,但我還在學習。
非常感謝!
爲什麼用戶?如果我們將它移動到模型中,它應該放在Body中。 –
儘管控制器是Body,但他的show方法引用了@ user,但我正在考慮這@ @ user = User.find(params [:user_id])和@ user.bodies在bmr方法中。 – widjajayd
我的意思是,它應該是'@ user.bodies.last.bmr'(並且'@ user.bmr'委託給'bodies.last') –