繁体   English   中英

如何在Ruby脚本的Rails中使用现有的ActiveRecord模型

[英]How can I use existing Activerecord model in rails in ruby script

如果我在Rails应用程序的根目录中有一个ruby脚本,并且需要访问在Rails环境中创建的现有Activerecord模型。 我如何使用类似

user = User.new

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

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

1)耙任务

lib/tasks创建一个rake 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"

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM