に基づいて、オブジェクト変数を計算します。Railsの5 - のは、私は3つの変数とRailsの5の計算モデルを持っていると言う二つの他の変数
a - float
b - float
add - float
2つの変数のみが計算で(& b)に存在していますオブジェクトの作成時に表示します。
addition(a, b)
関数をコントローラから呼び出すと、オブジェクトがデータベースに保存される前に "add"変数が計算されます。
calculations_controller.rb
のこの機能(または類似)を使用して、結果を計算してデータベースに保存するにはどうすればよいですか?これは、オブジェクトが更新されるたびに呼び出される必要があります。
現在の考え方:この関数は、コントローラの作成機能と更新機能の両方で呼び出される必要があります。または、おそらくbefore_saveコールバックを使用します。しかし、コントローラのオブジェクト・パラメータの@calculation
オブジェクト・ファンクションに関数の結果を代入する方法については少し不便です。
class Calculation < ApplicationRecord
def addition(a, b)
return a + b
end
end
コントローラ例:
class CalculationsController < ApplicationController
def create
# calculate and assign to :add variable here?
@calculation = Calculation.new(calculation_params)
respond_to do |format|
if @calculation.save
... redirect_to ...
else
... render :new ...
end
end
end
新しいクラスを作成するときはまず小さなものが必要ですが、 'class'という単語は小文字にする必要があります。クラス計算
davidhu2000
あなたは '@calculation = addition(a、b)'のようなことをすることができます – davidhu2000
@ davidhu2000 re:スペルありがとう、更新済み! re:addition - 現在の関数は、計算された値を返します(add変数を参照しません)。 '@計算'は計算オブジェクト全体を指し、オブジェクト内の特定の変数ではありません。私はそれが動作するとは思わない –