2014-02-12 41 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控制器變量中。

相關問題