我对Ruby on Rails很陌生,以及确保我站在正确的位置。我想做一些简单的“实时计算”,我不确定最好的方法。 如果我们使用食谱示例。
每种食谱都含有许多成分。 每种成分都有描述,数量,成本和总数。
我想做的是以下几点; 1)ingredient.total = ingredient.qty x ingredient.cost 2)recipe.grand_total = ingredients.sum(总计)
每次用户更改ingredient.qty或ingredient.cost中的值时,我想更新总数。
我不知道的是如何或在何处这样做:(
任何帮助都会很棒:)
先谢谢, 尼尔
答案 0 :(得分:0)
我认为你需要在上面提到的两个字段中使用onChange或者observe_field来使用javascript。
当其中一个更新后,javascript将调用您的代码进行计算。
答案 1 :(得分:0)
一直在搞乱,到目前为止已经提出了各种各样的地方的解释,以为我会分享。
<tr class="recipe_item">
<td><%= f.text_field :ingredient %></td>
<td><%= f.text_field :quantity, :class => "quantity", :onblur => "this.up('.recipe_item').down('.total').value = (parseInt(this.value) * parseInt(this.up('.recipe_item').down('.cost').value)) ;" %></td>
<td><%= f.text_field :cost, :class => "cost", :onblur => "this.up('.recipe_item').down('.total').value = parseInt(this.up('.recipe_item').down('.quantity').value) * (parseInt(this.value)) ;" %></td>
<td><%= f.text_field :total, :class => "total", :readonly => true %></td>
</tr>
不确定这是多么有效,但它似乎至少在第一步工作。接下来要找到一种方法将所有配方项目总结为总计。任何人有任何意见或想法? 谢谢 尼尔