我需要一个脚本才能访问我的模型。我发现了一篇关于这个的帖子,建议做
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)
我做错了什么
答案 0 :(得分:10)
我认为在加载环境后会设置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 mytask
。 environment
任务将自动加载Rails环境。
答案 1 :(得分:0)
我找到了自己的答案。忘记我说的包括在顶部。把它改为
ENV['RAILS_ENV'] = ARGV.first || ENV['RAILS_ENV'] || 'development'
require File.expand_path(File.dirname(__FILE__) + "/../config/environment")