计算器使用复选框值

时间:2014-03-10 06:13:30

标签: ruby-on-rails

我是ruby on rails的新手..所以请帮我搞清楚..谢谢你.. :)

我正在尝试创建一个简单的计算器

我正在wrong number of arguments (1 for 0)

calculator_controller.rb

      class CalculatorController < ApplicationController
                   def calculate
                        pasta = params [:pasta]
                        noodles = params [:noodles]
                        @result = pasta.to_i + noodles.to_i
                        redirect_to result_path
                   end
           end

/views/page/calculator.html.erb

             <%= form_tag({:controller => "calculator", :action => "calculate"}, :method => "post") do %>
                      <div>
                             <%= check_box_tag 'pasta', '100' %>MENU ITEM 1
                      </div>
                      <div>
                             <%= check_box_tag 'noodles', '200' %>MENU ITEM 2
                      </div>
                      <div>
                              <%= submit_tag('Submit', :disable_with => 'Submitting...')%> 
                      </div>
            <% end %>

/views/calculator/result.html.erb

    <div>
       <%= @result %>
    </div>

1 个答案:

答案 0 :(得分:0)

class CalculatorController < ApplicationController
                   def calculate
                        pasta = params [:pasta]
                        noodles = params [:noodles]
                        @result = pasta.to_i + noodles.to_i
                        redirect_to result_path
                   end
           end

在这里,您将重定向到result_path。所以@result中的值丢失了。因此,如果你想保留@result的值,你可以将它保持在会话中或通过使用参数传递它或使用flash或渲染视图 我将在这里使用渲染视图。

params[:pasta]之间有一个空格。这就是为什么你得到这个错误。删除空间,它将为你工​​作。

class CalculatorController < ApplicationController
                       def calculate
                            pasta = params[:pasta]
                            noodles = params[:noodles]
                            @result = pasta.to_i + noodles.to_i
                            render 'result'
                       end
               end

在视图中

<div>
       <%= @result %>
    </div>