我有一个Rails 5应用程序和自定义模块存储在
lib/reusable.rb
.
module Reusable
def createCharge(amount, source, description, customer)
charge_params = {
amount: amount,
source: source,
description: description,
currency: 'usd'
}
return charge_params
end
end
我已将以下内容添加到
application.rb
config.autoload_paths << "#{Rails.root}/lib"
config.eager_load_paths << "#{Rails.root}/lib"
启动控制台时,我可以运行以下操作:
2.3.4 :002 > include Reusable
=> Object
2.3.4 :003 > x = Reusable.createCharge(100, 1, "ffwefwef")
{
:amount => 100,
:source => 1,
:description => "ffwefwef",
:currency => "usd"
}
但在我的控制器中,我不能做同样的事情。当我尝试以下方法时:
class ChargesController < ApplicationController
before_action :authenticate_user!, only: [:new, :create]
before_action :set_client, only: [:new, :create]
before_action :set_order, only: [:create]
include Reusable
def create
charge_attempt = Reusable.createCharge(total, token, description, customer)
end
end
NoMethodError (undefined method `createCharge' for Reusable:Module):
知道它为什么找不到函数吗?我已重新启动应用程序并打印
Reusable.methods
到我的控制台,功能不在那里。