【问题标题】:Ruby on Rails: how to get value of number_field in codeRuby on Rails:如何在代码中获取 number_field 的值
【发布时间】:2014-02-12 20:52:01
【问题描述】:

我是 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 中的值作为要添加的数字。有了我所拥有的,我不断收到一个错误:“未定义的方法 `+' for :num1:Symbol”。我在想 num1 和 num2 只是 number_fields 的名称,所以我需要知道如何获取输入到这些字段中的整数。谢谢你的帮助。哦,我在 RubyMine IDE 中使用 Ruby 193 和 Rails 4.0。

编辑

这是型号代码。对于真正的红宝石学家来说,我敢肯定它很难看:

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

【问题讨论】:

  • 可以添加模型定义吗?
  • 你的意思是你想在 Ruby(服务器端)视图中操作插入客户端的值?
  • @mdesantis 是的,我猜...我想要一个类似 .getValue 的 number_fields 返回字段内的数字。

标签: ruby-on-rails ruby formbuilder formhelper


【解决方案1】:

您必须将表单中的数据提交到控制器操作服务器端才能在其上使用 ruby​​ 模型代码。您似乎正在尝试执行客户端行为(javascript)而不是服务器端(Ruby on Rails)

【讨论】:

    【解决方案2】:

    服务器端您无法知道用户在用户提交表单之前插入了哪个值。

    因此,如果您想在表单提交之前操作数据,您应该实现您的Calculation 客户端(阅读:使用 javascript),否则您必须在控制器操作中捕获表单响应并操作用户数据,这将出现在params 控制器变量中。

    【讨论】:

      猜你喜欢
      • 2017-04-08
      • 1970-01-01
      • 2015-12-28
      • 1970-01-01
      • 1970-01-01
      • 2015-11-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多