2014-01-13 66 views
0

当我有这种形式:红宝石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%> 
    </div> 
    <div class=""> 
    <%= f.submit('ADD') %> 
    </div> 
<% end %> 

我怎么添加输入值到totalcandy和保存呢?由于

+1

:因此,您只需要通过不同Candy's到控制器,允许的总和?如果你没有它的值,你可以忽略'class'属性。 – meagar

+0

创建虚拟属性到模型和添加的输入栏。 – devanand

回答

1

你感到困惑着如何Rails的工作

  1. Rails的是服务器端
  2. 你试图计算客户端
  3. 你必须单独处理它们

Modularity

你必须计算这个在后端(一旦你提交表单)

Rails的看法是有显示一个HTML页面,并且除非request进行到不会改变服务器

与铁路的模块化结构保持一致,你需要保持你的逻辑在你的控制器,在你的意见你的投入,并在模型的数据操作。你为什么要使用`类=“”`

#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