每次更改控制器后自动重启 Rails 服务器 [英] Restart Rails server automatically after every change in controllers
问题描述
在任何正常更改后,不需要重新启动 Rails 服务器.但是,当我对我的应用程序控制器进行少量更改时,如果我不重新启动服务器,它们就不会应用.即使我写了错误的代码并故意犯了错误,旧的错误仍然存在.我该如何更改或验证设置是否正确?
It should not be necessary to restart Rails server after any normal change. However, when I make little changes on my app controllers, they aren't applied if I don't restart the server. Even if I wrote bad code and made errors intentionally, the old error persists. How can I change that or verify that's well set up?
我在 config/environment/development.rb 文件
:
config.cache_classes = false
这个对我不起作用.
UDPATE 1:
development.rb
development.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
推荐答案
您可以使用 nodemon 来自动重启旧的 Rails 应用程序.
You can use nodemon for auto restarting your old rails applications.
1) 安装 nodemon.
1) Install nodemon.
sudo npm install -g nodemon
2) 在根目录上创建 nodemon.json 文件并配置它
2) Create nodemon.json file on root dir and configure it
{
"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 应用程序.
3) Create rails.sh file on root dir to start rails application using nodemon.
kill -9 `cat tmp/pids/server.pid`
echo "APP READY!!!"
echo "Ruby on Rails"
rails s -d
4) 授予rails.sh
文件权限.
4) Give permission to rails.sh
file.
sudo chmod +x rails.sh
5) 使用 sh
命令启动服务器.
5) Start server using sh
command.
nodemon -L --exec "./rails.sh"
注意:在mac机器上验证的步骤.不同的操作系统可能有不同的命令或配置.
这篇关于每次更改控制器后自动重启 Rails 服务器的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!