如果我在rails应用程序的根目录下有一个ruby脚本,我需要访问在rails环境中创建的现有Activerecord模型。我怎样才能使用像
这样的东西user = User.new
在我的脚本中没有建立新连接或创建新类。
答案 0 :(得分:1)
从命令行处理Rails模型有两种常用方法:
1)佣金任务
在lib/tasks
# 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"
我更喜欢第二种方式,因为它更容易测试和重用代码。