我在_form中打开帐户页面(即)时执行fixeddeposit项目。我已使用javascript选中存款金额的复选框。存款金额的数据类型为浮点数。它只在该页面上添加值,当我尝试点击提交按钮时,它会显示以下错误消息
未定义的方法`to_f'对于[" 0"," 0"," 0"," 0"," 0",&#34 ; 0"," 0"," 0"," 0"," 100000"," 0" ," 0"]:数组
** my _form.html.erb **
<tr>
<th><%= f.label :click_your_deposit_amount %></th>
</tr>
<tr>
<td>
<%= f.check_box :depamt, {:multiple => "true"}, 500 %>500
<%= f.check_box :depamt, {:multiple => "true"}, 1000 %>1000
<%= f.check_box :depamt, {:multiple => "true"}, 2000 %>2000
<%= f.check_box :depamt, {:multiple => "true"}, 3000 %>3000
<%= f.check_box :depamt, {:multiple => "true"}, 4000 %>4000
<%= f.check_box :depamt, {:multiple => "true"}, 5000 %>5000
<%= f.check_box :depamt, {:multiple => "true"}, 10000 %>10000
<%= f.check_box :depamt, {:multiple => "true"}, 50000 %>50000
<%= f.check_box :depamt, {:multiple => "true"}, 100000 %>100000
<%= f.check_box :depamt, {:multiple => "true"}, 500000 %>500000
<%= f.check_box :depamt, {:multiple => "true"}, 1000000 %>1000000
</td>
</tr>
<tr>
<td>
<span id="span"></span>
<div>Total Deposit Amount: <span id="amt"> </span></div>
</td>
</tr>
<script>
$('input:checkbox').change(function(){
var total = 0;
$('input:checkbox:checked').each(function(){
total+=parseInt($(this).val());
$('#amt').html(total)
});
});
</script>
这是我的控制器
fds_controller.rb
class FdsController < ApplicationController
def new
@fd = Fd.new
end
def create
@fd = Fd.new(params[:fd])
if @fd.save
flash[:success] = "FD Account Opened Successfully!"
redirect_to fds_path
else
flash[:error] = "Couldn't Open FD"
render 'new'
end
end
end
我不知道如何将检查的值存储在我的数据库中(sqlite3)。
请帮助我解决这个问题。
-Thanks ...:)
答案 0 :(得分:1)
问题是您尝试在.to_f
上调用Array
方法。您可以对数组中的项调用该方法,但不能调用数组本身:
new_array = my_array.map(&:to_f)
这应该将所有项目转换为浮动并将其设置为新数组。
答案 1 :(得分:0)
可能最简单的事情就是创建一个&#34; depamt&#34; Fds的序列化列(通常在数据库中使用文本列)。 ActiveRecord将自动保留并为您获取Array值。有关配置模型的示例,请参阅文档here。