2016-10-11 4 views
2

作成したサービスからこのヘルパーメソッドを呼び出すことができません。彼らは、次のようになります。サービスでヘルパーメソッドを呼び出す

# app/services/fulfillment_order.rb 
class FulfillmentOrder 
    def create_order_user_fulfilled 
    shop = Shop.find_by(shopify_domain: @domain) 
    shop_token = shop.shopify_token 
    ApplicationController.helpers.activate_shopify_session_with_id(@domain, shop_token) 
    end 
end 

私はこのエラーに

NoMethodError (undefined method activate_shopify_session_with_id 

を取得し、それを行うときは、私もまっすぐヘルパーメソッドを呼び出そうとしました:

# app/controllers/application_controller.rb 
class ApplicationController < ActionController::Base 
    helper_method :activate_session_with_id 

def activate_session_with_id(domain, token) 
    #do some stuff 
end 
end 

私のサービスは次のようになりますこのように:

activate_shopify_session_with_id(@domain, shop_token) 

N oいずれにしても運がいい。私はどこに迷いましたか?コントローラの外のコントローラのメソッドを呼び出す

答えて

1

必要性は、あなたが間違った場所にこのメソッドを定義していることを意味します。

あなたはいくつかのヘルパーモジュールにメソッドを移動し、両方の場所で(それを含めることによって)使用できます。あなたの試行作業を行うために、言われています

:suggestion.Ahhため

ApplicationController.new.activate_session_with_id(domain, token) 
+0

[OK]を、おかげで、私はこの方法のためのモジュールを作成した場合、私はちょうどサービスにおけるモジュールを含むと呼ぶだろうメソッドは必要に応じて?はい? – ToddT

+0

@ToddTea、あなたはこのメソッドを使用するどのクラスにもインクルードします:) –

関連する問題