如何在一个单独的script.rb中使用Rails'Active Record?

时间:2011-12-13 22:30:08

标签: ruby-on-rails ruby ruby-on-rails-3 activerecord

我必须运行此脚本:/scripts/saveData.rb

在其中,我需要使用我的Rails应用程序的ActiveRecord。 我尝试调用Class,但收到错误"uninitialized constant (NameError)"

如何从saveData.rb脚本中获取对Rails类的引用?

Rails 3.1

更新:我如何调用模型的方法?我的模型是:“程序”(也是活动记录)。我试过“Program.method”,但它不起作用,为什么?

3 个答案:

答案 0 :(得分:8)

您使用的是哪个版本的导轨?

如果你使用的是Rails 3,你可以在Rails运行器中运行你的代码:

http://guides.rubyonrails.org/command_line.html#rails-runner

$ rails runner script/saveData.rb

如果您使用的是Rails 2,请尝试以下方法:

$ script/runner script/saveData.rb

答案 1 :(得分:1)

使用rails runner

除此之外,你可以创建一个rake任务,或者只是从rails控制台加载文件。

答案 2 :(得分:1)

您可以在脚本顶部尝试require Rails环境:

require File.expand_path(File.join(File.dirname(__FILE__), 'config', 'environment'))

但是,您应该考虑使用rake任务。