【问题标题】:RoR environment in Ruby standalone scriptRuby 独立脚本中的 RoR 环境
【发布时间】:2010-09-25 00:40:08
【问题描述】:

我想运行一个独立的 ruby​​ 脚本,我需要在其中使用我的 RoR 环境。具体来说,我需要我的模型扩展 ActionMailer 和 ActiveRecord。我还需要从我的 database.yml 中读取数据库配置。 我该怎么办?

【问题讨论】:

    标签: ruby-on-rails ruby environment


    【解决方案1】:

    最简单的方法是将脚本的 shebang 从:

    #!/usr/bin/ruby
    

    #!/path/to/your/rails/script/runner
    

    等等,您的脚本将在加载完整的 rails 环境的情况下运行。您还可以将脚本作为./my_script -e production 运行,以使其与生产数据库一起运行。

    【讨论】:

      【解决方案2】:

      查看此线程: How do I run Ruby tasks that use my Rails models?

      基本上归结为:

      require "#{ENV['RAILS_ROOT']}/config/environment.rb"
      

      玩得开心!

      【讨论】:

        【解决方案3】:

        我认为最好的方法是让它成为一个 rake 任务。

           # lib/tasks/mystuff.rake
           desc 'do my stuff'
           task :my_stuff => [:environment] do
             # do my stuff
           end
        

        [:environment] 节加载 rails 环境。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2014-08-19
          • 2021-10-08
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多