【问题标题】:Restart Rails server automatically after every change in controllers每次更改控制器后自动重启 Rails 服务器
【发布时间】:2020-03-02 18:40:27
【问题描述】:

任何正常更改后都不需要重新启动 Rails 服务器。但是,当我对我的应用程序控制器进行少量更改时,如果我不重新启动服务器,它们就不会应用。即使我写了错误的代码并故意犯了错误,旧的错误仍然存​​在。如何更改或验证设置是否正确?

我在config/environment/development.rb file:

config.cache_classes = false

This 对我不起作用。

UDPATE 1:

开发.rb

    Rails.application.configure do
  # Settings specified here will take precedence over those in config/application.rb.

  # In the development environment your application's code is reloaded on
  # every request. This slows down response time but is perfect for development
  # since you don't have to restart the web server when you make code changes.
  config.cache_classes = false

  # Do not eager load code on boot.
  config.eager_load = false

  # Show full error reports and disable caching.
  config.consider_all_requests_local       = true
  config.action_controller.perform_caching = false

  # Don't care if the mailer can't send.
  config.action_mailer.raise_delivery_errors = false

  # Print deprecation notices to the Rails logger.
  config.active_support.deprecation = :log

  # Raise an error on page load if there are pending migrations.
  config.active_record.migration_error = :page_load

  # Debug mode disables concatenation and preprocessing of assets.
  # This option may cause significant delays in view rendering with a large
  # number of complex assets.
  config.assets.debug = true

  # Asset digests allow you to set far-future HTTP expiration dates on all assets,
  # yet still be able to expire them through the digest params.
  config.assets.digest = true

  # Adds additional error checking when serving assets at runtime.
  # Checks for improperly declared sprockets dependencies.
  # Raises helpful error messages.
  config.assets.raise_runtime_errors = true

  # Raises error for missing translations
  # config.action_view.raise_on_missing_translations = true
end

【问题讨论】:

  • 使用哪个命令来启动 Rails 服务器并共享您的 development.rb 文件内容并在您的终端 export RAILS_ENV=development 中尝试此操作,然后重新启动您的 Rails 服务器。
  • 我使用:“rails s”来启动我的服务器。我在哪里尝试这个:“export RAILS_ENV=development”?在根应用程序文件夹内还是在任何地方?
  • 只需将其放入您想要启动控制台的用户的 ~/.bashrc 或 ~/.bash_profile 文件中,或者直接在终端中运行它即可。
  • 对不起,我在 Windows 7 上运行它。当我启动服务器时,它显示:“development”。
  • 每当我不得不使用 Rails 时,我从来没有遇到过这个问题。 (我在 Mac 上)。你用的是什么版本的 Rails?可能有一个专门影响 Windows 的错误。

标签: ruby-on-rails ruby


【解决方案1】:

您可以使用 nodemon 自动重启旧的 Rails 应用程序。

1) 安装 nodemon。

sudo npm install -g nodemon

2) 在根目录创建 nodemon.json 文件并进行配置

{
  "ignore": [
    ".git",
    "node_modules/**/node_modules"
  ],
  "watch": [
    "app/controllers/",
    "app/models/",
    "app/assets/",
    "config/",
    "db/"
  ],
  "ext": "rb yml js css scss"
}

3) 在根目录创建 rails.sh 文件以使用 nodemon 启动 rails 应用程序。

kill -9 `cat tmp/pids/server.pid`
echo "APP READY!!!"
echo "Ruby on Rails"
rails s -d

4) 授予rails.sh 文件的权限。

sudo chmod +x rails.sh

5) 使用sh 命令启动服务器。

nodemon -L --exec "./rails.sh"

注意:在 mac 机器上验证的步骤。不同的操作系统可能有不同的命令或配置。

【讨论】:

    猜你喜欢
    • 2014-11-06
    • 2017-04-25
    • 2013-05-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-02-02
    • 1970-01-01
    相关资源
    最近更新 更多