13

ApplicationController でメソッドを定義しました

class ApplicationController < ActionController::Base
   helper_method :get_active_gateway
   def get_active_gateway(cart)
     cart.account.gateways
   end
end

モデルでこのメソッドを呼び出すとき

class Order < ActiveRecord::Base
   def transfer
     active= get_active_gateway(self.cart)
   end
end

エラーをスローしますundefined local variable get_active_gateway

だから私は書いた

class Order < ActiveRecord::Base
   def transfer
    active= ApplicationContoller.helpers.get_active_gateway(self.cart)
   end
end

それからそれは投げていerror undefined method nil for Nilclassました。

Rails 3.2.0 で作業しています。

4

2 に答える 2

8

なぜそのようなものが必要なのですか?モデルはそのコントローラーについて認識すべきではありません。この場合、システムを再設計する方が適切かもしれません。

ここに同様のスレッドへのリンクがあります。

于 2012-04-17T12:14:00.530 に答える
5

設計上の選択として、モデルからコントローラー ヘルパーを呼び出すことはお勧めしません。

必要な詳細を引数としてモデル メソッドに渡すだけです。

デフ転送 (active_gateway)
  アクティブ = アクティブ_ゲートウェイ
終わり
于 2012-04-17T12:14:35.507 に答える