Ruby 独立脚本中的 RoR 环境

发布于 2024-07-09 20:50:10 字数 129 浏览 5 评论 0原文

我想运行一个独立的 ruby​​ 脚本,在其中需要使用我的 RoR 环境。 具体来说,我需要我的模型扩展 ActionMailer 和 ActiveRecord。 我还需要从我的database.yml 中读取数据库配置。 我该怎么办?

I want to run a standalone ruby script in which I need my RoR environment to be used. Specifically, I need my models extending ActionMailer and ActiveRecord. I also need to read the database configuration from my database.yml.
How do I go about it?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

墨小墨 2024-07-16 20:50:10

最简单的方法是将脚本的 shebang 从 : 更改

#!/usr/bin/ruby

#!/path/to/your/rails/script/runner

Et voilà,您的脚本将在加载完整的 Rails 环境的情况下运行。 您还可以将脚本作为 ./my_script -e production 运行,以使其与生产数据库一起运行。

The easiest way is to change the shebang of your script from :

#!/usr/bin/ruby

to

#!/path/to/your/rails/script/runner

Et voilà, your script will be run with the full rails environment loaded. You can also run your script as ./my_script -e production to have it run with the production database.

很快妥协 2024-07-16 20:50:10

查看此线程:
如何运行使用 Rails 的 Ruby 任务模型?

本质上它可以归结为:

require "#{ENV['RAILS_ROOT']}/config/environment.rb"

玩得开心!

Check out this thread:
How do I run Ruby tasks that use my Rails models?

Essentially it boils down to:

require "#{ENV['RAILS_ROOT']}/config/environment.rb"

Have fun!

南城旧梦 2024-07-16 20:50:10

我认为做到这一点的最好方法就是让它成为一个 rake 任务。

   # lib/tasks/mystuff.rake
   desc 'do my stuff'
   task :my_stuff => [:environment] do
     # do my stuff
   end

[:environment] 节加载 Rails 环境。

I think the best way to do this is to make it a rake task.

   # lib/tasks/mystuff.rake
   desc 'do my stuff'
   task :my_stuff => [:environment] do
     # do my stuff
   end

The [:environment] stanza loads the rails environment.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文