【问题标题】:How can I stop Rails execution from initializer?如何从初始化程序停止 Rails 执行?
【发布时间】:2018-04-17 11:31:43
【问题描述】:

我想阻止应用从初始化程序启动。 如果配置不存在,则停止服务器/控制台等。 同时发送消息以解释错误。

有没有办法做到这一点?

我查看了初始化事件,但无法实现。

提前致谢。

【问题讨论】:

    标签: ruby-on-rails ruby configuration server initialization


    【解决方案1】:

    是的,只需像往常一样引发异常:

    raise StandardError, "Stopping app start up because something is missing"
    

    如果您这样做是因为缺少某些配置,请考虑使用 Figaro 之类的工具来为您执行此操作。

    Figaro.require_keys("pusher_app_id", "pusher_key", "pusher_secret")

    https://github.com/laserlemon/figaro

    【讨论】:

      【解决方案2】:

      您可以使用Kernel#abort 方法来执行此操作。它会使用您提供的消息停止应用程序,并且不会抛出任何错误。

      例子:

      abort('You need to pass more info to start the application') if some_check_fails?
      

      【讨论】:

        猜你喜欢
        • 2011-09-20
        • 2012-03-29
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-06-05
        • 1970-01-01
        • 2011-01-08
        • 1970-01-01
        相关资源
        最近更新 更多