【问题标题】:Rails load seed - feedbackRails 加载种子 - 反馈
【发布时间】:2016-03-07 21:33:52
【问题描述】:

我的网站上有一个管理页面,允许我通过单击链接来加载种子。

它只是调用:

Rails.application.load_seed

问题是,没有任何反馈表明这种情况正在发生 - 我希望以某种方式在页面上查看种子输出(就像在命令行中运行一样)。

点击链接时有没有办法做到这一点?

【问题讨论】:

    标签: ruby-on-rails


    【解决方案1】:

    如果您关心页面重新加载,您可以使用 jquery 对路由执行 ajax 发布请求,运行脚本(它不需要在种子文件中 - 您可以在控制器操作中运行它您创建)您正在运行以添加数据,然后在您的成功回调中附加结果。

    【讨论】:

    • 这是否意味着输出将连续显示在屏幕上,就像在控制台中一样?我希望用户看到它发生时..
    • 用户可以看到它的发生。如果您希望它非常快,例如堆栈跟踪...您可能希望将其分解为多个 ajax 请求,具体取决于我们正在讨论的数据量。
    【解决方案2】:

    如果“输出”是指打印到标准输出的消息(例如,在种子文件中使用 puts),则可以使用来自 this SO answer 的代码在控制器中获取输出):

    # controller:
    @output = with_captured_stdout { Rails.application.load_seed }
    

    但这只会在加载完成后显示,在此过程中您不会获得任何信息。如果您需要,我认为您需要一些流技术。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-08-27
      • 2023-04-06
      相关资源
      最近更新 更多