如何在rails中保存多个复选框值?

时间:2014-05-30 11:51:53

标签: javascript jquery ruby-on-rails ruby checkbox

我在_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 ...:)

2 个答案:

答案 0 :(得分:1)

问题是您尝试在.to_f上调用Array方法。您可以对数组中的项调用该方法,但不能调用数组本身:

new_array = my_array.map(&:to_f)

这应该将所有项目转换为浮动并将其设置为新数组。

答案 1 :(得分:0)

可能最简单的事情就是创建一个&#34; depamt&#34; Fds的序列化列(通常在数据库中使用文本列)。 ActiveRecord将自动保留并为您获取Array值。有关配置模型的示例,请参阅文档here