2014-02-12 39 views
0

我是Ruby新手,显然是RoR。我用脚手架创建了一个rails项目。对于模型我需要两个字段,num1:integer和num2:integer。这是为了创建这两个领域的观点是Ruby on Rails:如何在代码中获取number_field的值

<%= form_for(@calculation) do |f| %> 
    . 
    . 
    . 
    <div class="field"> 
    <%= f.label :num1 %><br> 
    <%= f.number_field :num1 %> 
    </div> 
    <div class="field"> 
    <%= f.label :num2 %><br> 
    <%= f.number_field :num2 %> 
    </div> 

我一直都在互联网上,无法找到如何让那些进入这些领域,以操纵它们的值。以下是我有

<div class="actions"> 
    <%= f.button('Add', &Calculation.add(:num1,:num2)) %> 
    </div> 

在上面的代码中,我想创建一个按钮,将运行Calculation.add方法从number_fields作为添加的数字的值。随着我有我不断收到错误:“未定义的方法'+'为:num1:符号”。我在想,num1和num2只是number_fields的名称,所以我需要知道如何获得输入到这些字段的整数。谢谢你的帮助。哦,我在RubyMine IDE中使用Ruby 193和Rails 4.0。

编辑

这里是型号代码。我敢肯定,它丑陋的人,一个真正的rubyist看到:

class Calculation < ActiveRecord::Base 
    def self.add (x,y) 
    x+y 
    end 

    def self.subtract(x,y) 
    x-y 
    end 

    def self.multiply(x,y) 
    x*y 
    end 
end 
+0

您可以添加模型定义吗? – lucke84

+0

你的意思是你想操纵在Ruby(服务器端)视图内插入客户端的值? – mdesantis

+0

@mdesantis是的,我猜...我想要一个.getValue为number_fields返回字段中的数字。 – user3195786

回答

0

你必须从表单提交数据到控制器的动作服务器端才能使用红宝石型号代码就可以了。这似乎是你试图做客户端行为(JavaScript)而不是服务器端(Ruby on Rails)

0

服务器端你无法知道用户插入的是哪个值用户提交表单。因此,如果你想在表单提交前操作数据,你应该实现你的Calculation客户端(阅读:使用JavaScript),否则你必须在控制器操作中捕获表单响应并操作用户数据,这将出现在params控制器变量中。

相关问题