当我运行 rails server 时,guard/listen gem 可以完美运行 - 它会监听文件中的更改并在发生更改时运行各种脚本。但是 - 当我运行 rails 控制台时它不起作用。
这是 config/initializers/listen.rb 中的代码:
Thread.new do
puts "listening to changes in db/data directory"
File.open("db/data/test.txt", 'a+'){ |f| f.puts "hello"}
Listen.to("db/data", :filter => /\.yml$/, :ignore => %r{ignored/path/}) do |modified, added, removed|
File.open("db/data/test.txt", 'a+'){ |f| f.puts "file changed"}
puts "file changed"
end
end
当我运行 rails 控制台时,它会打印“监听 db/data 目录中的更改”行并停止。
我认为这与多线程和阻塞有关。
有没有办法用控制台运行监听?
谢谢,米哈尔·亚什佩