grape 文档中给的实现方法是
ActionDispatch::Callbacks.to_prepare do api_reloader.execute_if_updated end
但是在 rails5 ActionDispatch::Callbacks 没有 to_prepare 方法,rails api 中也没有找到替代方法
greap 是啥?
手误
建议不要在 Rails 上叠加 grape,不然处理各种兼容问题烦得要死。要不用 Rails 要不用 Grape。
因为你的 API 文件命名和文件组织结构不符合 Rails Autoload 的约定,所以无法热加载。
https://ruby-china.org/topics/15623#reply-300797
搜索历史,有很多资料了
文件组织结构这是另一个问题,我用 rails4.2 的时候就会出现这个问题。但是用 rails5 的时候启动服务直接就报错了
config/initializers/reload_api.rb:9:in `<top (required)>': undefined method `to_prepare' for ActionDispatch::Callbacks:Class (NoMethodError)
我到 rails5 源码里面看了一下,ActionDispatch::Callbacks 确实没有 to_prepare 这个方法,但是 rails4.2 是有这个方法的。rails5 里面暂时还没找到相应的替代方法,是不是 rails5 有更好的实现方法,然后把 to_prepare 废弃了?