这个输入表单有什么问题?

时间:2014-07-14 14:30:37

标签: ruby-on-rails ruby

我是ruby / rails语言的初学者,我只是通过创建我感兴趣的东西来学习,所以我打算创建一个简单的银行系统。

我没有走得太远,因为我收到以下错误:

ndefined method `text_field' for nil:NilClass

此代码的第7行:

  <%= form_tag('/deposit') do |f| %>
<div class="field">
  <%= f.text_field :dval %>
</div>
<div class="actions">
  <%= f.submit %>

这是我的银行班级

class BankController < ApplicationController
def initialize
    @balance ||= 0 
end


  def deposit
    @dval ||= 0
    @balance = @balance + @dval
  end

  def withdraw
  end
end

我希望dval是用户想要存入的数字,所以如果他们输入10并提交表格,它会将dval(10)添加到余额变量上。

非常感谢任何关于如何做到这一点的指示。

1 个答案:

答案 0 :(得分:2)

你的表格应该是

<%= form_tag('/deposit') do%>
  <div class="field">
    <%= text_field_tag 'dval' %>
  </div>
  <div class="actions">
  <%= submit_tag "Submit"%>
<%end%>

你的控制器应该是

class BankController < ApplicationController
  def deposit
    @dval = params[:dval].to_i 
    @balance = @balance + @dval
  end
end

form_tag

的文档

text_field_tag

的文档