Ruby on rails 4 rails模块中的设置变量与预期不符
当我从默认模块运行此代码时,我希望它通过mattr_访问器设置变量:Ruby on rails 4 rails模块中的设置变量与预期不符,ruby-on-rails-4,Ruby On Rails 4,当我从默认模块运行此代码时,我希望它通过mattr_访问器设置变量: Jsonforem.user_class = "User" 然后运行foreman start,我的shell中出现以下错误: 22:49:40 web.1 | [44763] ! Unable to load application: NoMethodError: undefined method `user_class=' for Jsonforem:Module 以下是我的模块代码: require "jsonfo
Jsonforem.user_class = "User"
然后运行foreman start
,我的shell中出现以下错误:
22:49:40 web.1 | [44763] ! Unable to load application: NoMethodError: undefined method `user_class=' for Jsonforem:Module
以下是我的模块代码:
require "jsonforem/engine"
module Jsonforem
mattr_accessor :user_class, :user_profile_links, :email_from_address,
:per_page, :sign_in_path, :moderate_first_post
def user_class
if @@user_class.is_a?(String)
begin
Object.const_get(@@user_class)
rescue NameError
@@user_class.constantize
end
end
end
end
到目前为止,我唯一能让它工作的方法是:
module Jsonforem
user_class = "User"
end
为什么上面的代码块可以工作,但我不能从模块外部设置变量?如果您需要上下文,我将按照这里的建议在ruby gem中设置配置变量:
干杯您的模块在lib目录中的哪里?
您的模块应该在加载之前加载。
将其放入配置/初始值设定项中,然后重试 需要解决我的问题:
require "jsonforem"
Jsonforem.user_class = "User"
该模块位于包含的gem中。