Ruby on rails Rails 4将类与模块混淆
我的模型定义为:Ruby on rails Rails 4将类与模块混淆,ruby-on-rails,class,module,Ruby On Rails,Class,Module,我的模型定义为: class Phaxio require 'rest_client' require 'json' attr_accessor :api_key, :secret_key, :callback_url, :current_intranet def initialize(args) @current_intranet = args.fetch(:current_intranet) if Rails.env.production? @api_
class Phaxio
require 'rest_client'
require 'json'
attr_accessor :api_key, :secret_key, :callback_url, :current_intranet
def initialize(args)
@current_intranet = args.fetch(:current_intranet)
if Rails.env.production?
@api_key = current_intranet.settings.find_first_by_group_type_name("phaxio","api_key").try(:value)
@secret_key = current_intranet.settings.find_first_by_group_type_name("phaxio","api_secret").try(:value)
@callback_url = "http://www.production.com/phaxio_holla_back"
else
@api_key = current_intranet.settings.find_first_by_group_type_name("phaxio","api_key_test").try(:value)
@secret_key = current_intranet.settings.find_first_by_group_type_name("phaxio","api_secret_test").try(:value)
@callback_url = "http://development.com:3002/phaxio_holla_back"
end
end
没有phaxio(或phaxios)表。模型名为“phaxio.rb”。我没有phaxios_控制器
当我调用Phaxio.new(当前的_内部网)
时,我得到了“Phaxio:Module的未定义方法'new'。我没有Phaxio模块,我在我的应用程序上做了一个grep(它相当大),以确保“Phaxio”没有在其他地方定义。知道我做错了什么吗
不,该应用程序未命名为“Phaxio”。My application.rb是:
require File.expand_path('../boot', __FILE__)
require 'rails/all'
Bundler.require(:default, Rails.env)
module V2
class Application < Rails::Application
config.autoload_paths += Dir["#{config.root}/app/presenters/*"].find_all { |f| File.stat(f).directory? }
config.autoload_paths += Dir["#{config.root}/app/services/*"].find_all { |f| File.stat(f).directory? }
config.autoload_paths += Dir["#{config.root}/app/queries/*"].find_all { |f| File.stat(f).directory? }
config.autoload_paths += Dir["#{config.root}/lib/*"].find_all { |f| File.stat(f).directory? }
config.autoload_paths += %W(#{config.root}/lib)
$TECH_EMAIL = ["fhock@production.com", "wprince@production.com"]
config.to_prepare do
Devise::SessionsController.layout "sessions"
#Devise::RegistrationsController.layout "sessions"
#Devise::ConfirmationsController.layout "sessions"
#Devise::UnlocksController.layout "sessions"
Devise::PasswordsController.layout "sessions"
end
end
end
require 'tools'
require 'pdf_tools'
需要文件。展开路径('../boot',文件)
需要“rails/all”
Bundler.require(:default,Rails.env)
模块V2
类应用程序
根据一位朋友最后的建议,我将所有对phaxio的引用重命名为phaxio2,一切正常。不知道为什么会有不同,因为我运行了一个grep来查找单词“phaxio”的所有实例,以防出现一些冲突的模块,但没有找到任何实例。我想有时候抓救命稻草确实管用 您的应用程序是否也被命名为“Phaxio”?config/application.rb中有什么内容?看看rails控制台中执行Phaxio.inspect
会返回什么内容会很有趣。