Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/heroku/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails Ruby Rails在提交时计算_Ruby On Rails - Fatal编程技术网

Ruby on rails Ruby Rails在提交时计算

Ruby on rails Ruby Rails在提交时计算,ruby-on-rails,Ruby On Rails,我有以下表格: <%= form_for(@candy) do |f| %> <div class=""> <%= current_user.totalcandy %> </div> <div class=""> <%= f.label :candy, 'add a candy' %><br /> <%= f.number_field :candy%> <

我有以下表格:

<%= form_for(@candy) do |f| %>
  <div class="">
    <%= current_user.totalcandy %>
  </div>
  <div class="">
    <%= f.label :candy, 'add a candy' %><br />
    <%= f.number_field :candy%>
  </div>
  <div class="">
    <%= f.submit('ADD') %>
  </div>
<% end %>



如何将输入值添加到totalcandy并保存它?谢谢

您对Rails的工作原理感到困惑

  • Rails是服务器端的
  • 您正在尝试计算客户端
  • 您必须单独处理它们

  • 您必须在后端计算(提交表单后)

    Rails视图用于显示HTML页面,并且不会更改,除非对服务器执行

    为了与Rail的模块化结构保持一致,您需要在控制器中保持逻辑,在视图中保持输入,在模型中保持数据操作。因此,您只需将不同的
    Candy的
    传递给您的控制器,使其能够合计:

    #app/views/candys/new.html.erb
    <%= form_for(@candy) do |f| %>
        <%= f.label :candy, 'Add a candy' %>
        <%= f.number_field :candy%>
        <%= f.submit %>
    <% end %>
    
    #app/controllers/candys_controller.rb
    def new 
        @candy = Candy.new
    end 
    
    def create
        @candy = Candy.new(candy_params)
        @candy.save
    
        @total_candy = #your logic here
    end
    
    private
    
    def candy_params
        params.require(:candy).permit(:candy)
    end
    
    #app/views/candys/new.html.erb
    #app/controllers/candys_controller.rb
    def新
    @糖果
    结束
    def创建
    @糖果=糖果。新(糖果参数)
    @凯蒂,救命
    @total_candy=#你的逻辑在这里
    结束
    私有的
    def candy_params
    参数要求(:candy).允许(:candy)
    结束
    
    为什么要使用
    class=”“
    ?如果没有值,您可以省略
    属性。为模型创建一个虚拟属性并添加一个输入字段。