【发布时间】:2016-03-07 21:33:52
【问题描述】:
我的网站上有一个管理页面,允许我通过单击链接来加载种子。
它只是调用:
Rails.application.load_seed
问题是,没有任何反馈表明这种情况正在发生 - 我希望以某种方式在页面上查看种子输出(就像在命令行中运行一样)。
点击链接时有没有办法做到这一点?
【问题讨论】:
标签: ruby-on-rails
我的网站上有一个管理页面,允许我通过单击链接来加载种子。
它只是调用:
Rails.application.load_seed
问题是,没有任何反馈表明这种情况正在发生 - 我希望以某种方式在页面上查看种子输出(就像在命令行中运行一样)。
点击链接时有没有办法做到这一点?
【问题讨论】:
标签: ruby-on-rails
如果您关心页面重新加载,您可以使用 jquery 对路由执行 ajax 发布请求,运行脚本(它不需要在种子文件中 - 您可以在控制器操作中运行它您创建)您正在运行以添加数据,然后在您的成功回调中附加结果。
【讨论】:
如果“输出”是指打印到标准输出的消息(例如,在种子文件中使用 puts),则可以使用来自 this SO answer 的代码在控制器中获取输出):
# controller:
@output = with_captured_stdout { Rails.application.load_seed }
但这只会在加载完成后显示,在此过程中您不会获得任何信息。如果您需要,我认为您需要一些流技术。
【讨论】: