轨如何创建一个宝石内的初始化(Rails how to create an initializer

2019-08-26 22:25发布

我想用Rails 3和里面我试图通过一个初始化建立一个宝石:

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

问题是什么?

谢谢

Answer 1:

您的创业板将首先需要定义的lib /发电机/ 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

你应该检查出的官方文档在这里创造一个发电机: http://guides.rubyonrails.org/generators.html



文章来源: Rails how to create an initializer inside a gem