モデル プロシージャとオプションには HABTM 関係があり
ます。モデル クォートは、最初の 2 つのテーブルのパラメータに基づいて、複数ステップの形式で価格を作成します。
ステップ 1 でプロシージャーを照会し、ヘルパー ファイル (またはモジュール) が関連データを抽出します。
def quote_procedure
procedure = Procedure.where(['id = ?',params[:quote][:procedure_id]]).first
end
さまざまな計算が実行され、関連するすべてのオプションが特定されます。この時点で、for_each 関連オプションの計算を実行したいと思います。ただし、それらはパラメータ化されておらず、テーブル Quote の格納された値ではありません。@なし、パラメータなし...
オプション テーブルから関連データを処理するための適切な構文が見つかりません。ヘルパーから (計算を実行する必要があるため、最終的にはモジュール):
def quote_option
option = Option.where(['id = ?', self.id])
end
def my_calculation
(quote_option.sum_operational_costs / quote_option.procedure_speed) * params[:quote][:quantity]
end
ただし、コントローラーの場合
@options = Option.where(['procedures_options.procedure_id = ? AND option_type_id = ?', params[:quote][:procedure_id], 1]).joins(:procedures)
ビューでヘルパー メソッドを使用して結果を生成します (最後のメソッドを除くすべて)。
<%= (global.speed_setup_intercept + (globale.speed_setup_factor * surface)) * options.print_speed %>
しかし、ヘルパーメソッドを介してそれを取得することはできません. 問題のある提案は、
options.print_speed
undefined method
エラーを生成します