我在控制器/关注点中创建了一个名为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
我将此问题包含在我的商家控制器中,如下所示:
class MerchantsController < ApplicationController
include Reports
然后尝试在商家控制器上的操作中调用report_details方法,如下所示:
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
我做错了什么?
答案 0 :(得分:1)
试试这个
MerchantController.report_details(xx,xxx,xxxx)
但你应该在模型中更好地考虑这个问题。