ClassMethods в Концерне Контроллера, возвращающем NoMethodError
Я создал проблему в контроллерах / проблемах под названием reports.rb
В нем я создал модуль ClassMethods.. Это выглядит так
module Reports
extend ActiveSupport::Concern
included do
require 'peddler'
require 'csv'
end
module ClassMethods
def report_details(token, marketplace_id, merchant_id)
#...
end
Я включил эту проблему в свой контроллер Merchants следующим образом:
class MerchantsController < ApplicationController
include Reports
А затем попытался вызвать метод report_details в действии на контроллере Merchants следующим образом:
def pull_from_amazon
me = Merchant.find(params[:merchant_id])
marketplace = me.marketplace
token = me.token
Merchant.report_details(token, marketplace, params[:merchant_id])
redirect_to root_path
end
Согласно этому посту Rich on Rails я должен иметь возможность звонить:
Merchant.report_details(xx,xxx,xxxx)
Но я получаю NoMethodError, когда я пытаюсь.. Я также пытался:
me.report_details(xx,xxx,xxxx)
И получил тот же NoMethodError
Что я сделал не так?
1 ответ
Решение
Попробуй это
MerchantController.report_details(xx,xxx,xxxx)
Но вам лучше включить эту проблему в модель.