ruby-on-rails - 如何在 rake 任务中获取 Rails 应用程序名称?

标签 ruby-on-rails ruby-on-rails-3

我正在尝试编写 Rails 3 rake要生成的任务 config/initializers/secret_token.rb .我想提取应用程序的名称而不是在 rake 任务中对其进行硬编码,但是 @app_name尚未填充,也未填充 ENV['APP_NAME'] .这是任务的代码:

desc "Regenerate the server secret"
task :generate_secret do
    include ActiveSupport
    File.open('config/initializers/secret_token.rb', 'w') do |f|
        f.puts "#{@app_name}::Application.config.secret_token = '#{SecureRandom.hex(30)}'"
    end
end

除了 @app_name 之外,一切正常是空白。如何在此处检索应用程序名称?

最佳答案

您需要在 rake 任务中使用环境。那么你可以使用Rails.application.class.parent_name

desc "Regenerate the server secret"
task :generate_secret => :environment do
  include ActiveSupport
  File.open('config/initializers/secret_token.rb', 'w') do |f|
    f.puts "#{Rails.application.class.parent_name}::Application.config.secret_token = '#{SecureRandom.hex(30)}'"
  end
end

关于ruby-on-rails - 如何在 rake 任务中获取 Rails 应用程序名称?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7053235/

相关文章:

ruby-on-rails - 将静态页面部署到域根并将rails应用程序部署到子域

ruby-on-rails - 如何将哈希变量与 rspec capybara 测试规范一起使用

ruby-on-rails-3 - 轨道 3 : how to load files in/lib?

java - 将节俭生成的模型与带 Hibernate 注释的 POJO 一起使用

jquery - 复选框和 Ajax

ruby-on-rails - named_scope 至少有一个在 has_many 关联中

ruby-on-rails - 如何在新建和创建操作之间传递参数?

ruby-on-rails-3 - Rails 中关联的空对象模式

ruby-on-rails-3 - 帮助从 Rails 查询数据

ruby-on-rails - 如何在 Ruby on rails 3 中使用 Phonegap