ruby-on-rails-3 – 如何在gem中创建初始化程序
发布时间:2020-12-17 03:31:08 所属栏目:百科 来源:网络整理
导读:我试图在Rails 3中构建一个gem并在其中我试图传递一个初始化器: Credentials.configure do |config| file = File.read("#{Rails.root}/config/twitter.yaml") file_config = YAML.load(file) config.consumer_key = file_config[Rails.env][:consumer_key]
我试图在Rails 3中构建一个gem并在其中我试图传递一个初始化器:
Credentials.configure do |config| file = File.read("#{Rails.root}/config/twitter.yaml") file_config = YAML.load(file) config.consumer_key = file_config[Rails.env][:consumer_key] config.consumer_secret = file_config[Rails.env][:consumer_secret] config.callback_url = URI.escape(file_config[Rails.env][:callback_url]) config.time_stamp = Time.now.to_i end 然后我试着像这样称呼它: Credentials.time_stamp 但我得到这个错误: uninitialized constant Twitter::Credentials 问题是什么? 谢谢 解决方法
您的gem首先需要在lib / generators / your_gem_name_generator.rb中定义一个生成器
mkdir -p lib/generators/ 使用诸如twitter_credentials.rb之类的名称复制该文件夹中的初始化程序 然后在该文件夹中创建另一个文件,其名称类似于twitter_generator.rb,内容如下: class YourGemNameRailtie < Rails::Generators::Base source_root(File.expand_path(File.dirname(__FILE__)) def copy_initializer copy_file 'twitter_credentials.rb','config/initializers/twitter_credentials.rb' end end 您应该在这里查看创建生成器的官方文档: (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |