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)

Но вам лучше включить эту проблему в модель.

Другие вопросы по тегам