我是Ruby的新手,显然是RoR。我用脚手架来创建一个rails项目。对于模型,我需要两个字段,num1:integer和num2:integer。创建这两个字段的视图是
<%= 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中的值作为要添加的数字。凭借我拥有的东西,我不断收到错误:“undefined method` +'for:num1:Symbol”。我认为num1和num2只是number_fields的名称,所以我需要知道如何获得输入到这些字段的整数。谢谢你的帮助。哦,我正在使用Ruby 193和Rails 4.0和RubyMine IDE。
修改
这是型号代码。对于一个真正的红宝石主义者来说,我确信这很丑陋:
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 :(得分:0)
您必须将表单中的数据提交到控制器操作服务器端,以便在其上使用ruby Model代码。看起来你正在尝试做客户端行为(javascript)而不是服务器端(Ruby on Rails)
答案 1 :(得分:0)
服务器端您无法知道用户在用户提交表单之前插入了哪个值。
因此,如果您想在表单提交之前操作数据,则应该实现Calculation
客户端(阅读:使用javascript),否则您必须在控制器操作中捕获表单响应并操纵用户数据,它将出现在params
控制器变量中。