新手 - Rails查看计算 - onchange?

时间:2010-01-27 13:15:08

标签: ruby-on-rails

我对Ruby on Rails很陌生,以及确保我站在正确的位置。我想做一些简单的“实时计算”,我不确定最好的方法。 如果我们使用食谱示例。

每种食谱都含有许多成分。 每种成分都有描述,数量,成本和总数。

我想做的是以下几点; 1)ingredient.total = ingredient.qty x ingredient.cost 2)recipe.grand_total = ingredients.sum(总计)

每次用户更改ingredient.qty或ingredient.cost中的值时,我想更新总数。

我不知道的是如何或在何处这样做:(

任何帮助都会很棒:)

先谢谢, 尼尔

2 个答案:

答案 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>

不确定这是多么有效,但它似乎至少在第一步工作。接下来要找到一种方法将所有配方项目总结为总计。任何人有任何意见或想法? 谢谢 尼尔