2015-09-07 64 views
1

我想要一個軌道應用程序的前兩個用戶輸入的整型輸入填充第三個字段後,他們執行一些算術時提交按鈕是按下。我想第三個字段顯示前兩個字段的算術結果

我已經使用鐵軌腳手架。

我是否在我的控制器代碼中將我想要執行的所需算術函數放在我的變量中?

# POST /pls 
    # POST /pls.json 


def create 
    @pl = Pl.new(pl_params) 

respond_to do |format| 
    if @pl.save 
    format.html { redirect_to @pl, notice: 'Pl was successfully created.' } 
    format.json { render :show, status: :created, location: @pl } 
    else 
    format.html { render :new } 
    format.json { render json: @pl.errors, status: :unprocessable_entity } 
    end 
end 

回答

0

你的問題不明確。但是對於這部分,答案是:

我是否在我的控制器代碼中將我希望執行的算術函數放在我的變量中?

最好的做法是使用模型方法來執行算術計算。您也可以使用私有控制器方法並在您需要的地方調用該方法。但是,推動create動作中的算術代碼並不是一個好習慣。

0

這是我實際上將你的P1模型放在before_save回調中的東西,這樣如果你的兩個用戶輸入值中的任何一個發生改變,第三個值就會被更新。它會是這個樣子:

class Pl < ActiveRecord::Base 

    before_save :update_third_value 

    def update_third_value 
     if first_value_changed? || second_value_changed? 
     third_value = first_value/second_value # here is your desired arithmetic 
     end 
    end 
end 

退房ActiveModel::Dirty,默認情況下是適用於所有型號,ActiveRecord::Callbacks,有可用的所有默認回調的列表。

+0

謝謝你們。只是爲了在更好的背景下提出我的問題。在我的應用程序的「新建」視圖中,有三個字段:收入,成本和利潤。我想要在按'保存'時自動計算第三個字段,然後向用戶顯示新的視圖並顯示利潤。我在正確的軌道上嗎? – Stoob

相關問題