【问题标题】:Rails script access modelRails 脚本访问模型
【发布时间】:2026-01-26 12:45:02
【问题描述】:

我需要一个脚本才能访问我的模型。我发现了一篇关于这个的帖子,建议这样做

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

在我的脚本顶部。然后我可以运行 ruby​​ script/my_script.rb 来运行它。但这给了我错误

/Users/my_name/.rvm/rubies/ruby-1.9.2-p290/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:36:in `require': no such file to load -- /config/environment.rb (LoadError)

我做错了什么

【问题讨论】:

    标签: ruby-on-rails database model


    【解决方案1】:

    我认为ENV['RAILS.root']会在环境加载后设置。你可以试试

    require File.expand_path(File.dirname(__FILE__) + "/../config/environment")
    

    不过,一个更常用的习语是编写 Rake 任务。例如创建一个名为lib/tasks/mytask.rake的文件:

    task :mytask => :environment do
      # Do something with your model
    end
    

    然后执行rake mytaskenvironment 任务将自动加载 Rails 环境。

    【讨论】:

      【解决方案2】:

      我找到了自己的答案。忘记我说的要包括在顶部。换成这个

      ENV['RAILS_ENV'] = ARGV.first || ENV['RAILS_ENV'] || 'development'
      require File.expand_path(File.dirname(__FILE__) + "/../config/environment")
      

      【讨论】: