如何在ruby脚本中使用rails中的现有Activerecord模型

时间:2014-09-14 03:35:17

标签: ruby-on-rails ruby activerecord

如果我在rails应用程序的根目录下有一个ruby脚本,我需要访问在rails环境中创建的现有Activerecord模型。我怎样才能使用像

这样的东西
user = User.new

在我的脚本中没有建立新连接或创建新类。

1 个答案:

答案 0 :(得分:1)

从命令行处理Rails模型有两种常用方法:

1)佣金任务

lib/tasks

中创建一个rake任务
# example lib/tasks/foo.rake
desc 'an example task'
task :foo => [:environment] do  
  user = User.new
  ...
end

使用以下命令从命令行调用该任务:

rake foo

2)脚本跑步者

在您的应用程序中创建执行该作业的方法

# example in app/models/user.rb
class User < ActiveRecord::Base
  ...
  def self.foo
    user = User.new
    ...
  end
end

从命令行调用此方法:

rails runner "User.foo"

我更喜欢第二种方式,因为它更容易测试和重用代码。