Rails动态地用Model填充表

Rails fill table with Model dynamically

本文关键字:填充 Model 动态 Rails      更新时间:2023-09-26

我有一个关于Ruby on Rails的问题。

我有一个带有方法的"主机模型",它需要更长的时间来运行。

class Host < ActiveRecord::Base
  def take-a-while 
    #do some stuff 
  end 
end

现在我尝试访问一个页面,其中该方法在所有主机上执行,并且每次在新表行中执行时都会自动显示结果。我的问题是,HTML文档首先被完全呈现,表格只有在完全加载(几分钟)后才显示出来。

有办法解决这个问题吗?

提前感谢问候!

对于这种问题。一种解决方法是使用后台作业(排队系统+状态机)

实际上,在Ruby和Ruby on Rails的世界里,有很多选项,比如

  • 用Resque (http://resquework.org)排队
  • 正在运行延迟的作业工作者(https://github.com/collectiveidea/delayed_job)
最简单的设置是使用delayed_job

结帐的好文章https://devcenter.heroku.com/articles/delayed-job

这些文章http://www.rubyspy.com/282_10039570/, http://blog.salsify.com/engineering/delayed-jobs-callbacks-and-hooks-in-rails可能有助于处理delayed_job finished回调

试一试:

您可以尝试缓存方法take-a-while的结果