gpt4 book ai didi

ruby-on-rails - 如何运行使用我的 Rails 模型的 Ruby 任务?

转载 作者:数据小太阳 更新时间:2023-10-29 06:38:41 26 4
gpt4 key购买 nike

我有一个带有一些基本模型的 Rails 应用程序。该网站显示从其他来源检索的数据。所以我需要编写一个 Ruby 脚本来在我的数据库中创建新实例。我知道我可以使用测试 Hook 来做到这一点,但我不确定这在这里是否有意义。

我不确定这个任务应该是什么样子,我如何调用它,或者它应该在我的源代码树中的什么位置(lib\tasks?)。

例如,这是我的第一次尝试:

require 'active_record'
require '../app/models/mymodel.rb'

test = MyModel.new
test.name = 'test'
test.save

这失败了,因为它无法连接到数据库。这对我的新手来说意义不大,因为大概 Rails 在幕后做了所有神奇的工作来设置所有这些东西。那么我该如何设置我的小脚本呢?

最佳答案

您可以通过简单地要求 environment.rb 在任何 ruby​​ 脚本中加载整个 Rails 环境:

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

这假定 RAILS_ROOT 环境变量已设置,请参阅我的评论以了解其他方法。

这有额外的好处,可以为您提供其余 Rails 代码中拥有的所有不错的类和对象。

要启动您的流程,听起来 cron 会做您想做的事,我还会在您的 capistrano 配方中添加一个任务,将您的脚本添加到 crontab 以定期从外部源获取数据并更新您的数据库.这可以通过 cronedit 轻松完成。 gem 。

cron 方法确实有一些缺点,主要是开销和控制,对于其他更复杂的选项,请参阅 HowToRunBackgroundJobsInRails来自 Rails 维基。

关于ruby-on-rails - 如何运行使用我的 Rails 模型的 Ruby 任务?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/293302/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com