rails中三种开发模式的区别

铁轨中的三种模式有什么区别: –

In development mode, Rails reloads models each time a browser sends in a request, so the model will always reflect the current database schema. 

编辑我问的是其他差异。 我提到了一个我正在寻找其他差异列表…… !!

它归结为性能和稳定性。 在生产模式中,模型被缓存在内存中,这意味着一旦读取它们,就不必再次读取文件,从而带来明显的速度优势。 这意味着如果您要更改定义模型的ruby文件(例如app / models / page.rb),则在下次重新加载之前不会获取此更改。

默认情况下,在config / environments / production.rb中找到以下行:

 config.cache_classes = true 

假设您处于生产模式时,除了通过发布或部署之外,您不会更改代码。 如果要清除缓存,则需要重新启动应用程序。

每次收到请求时,开发环境都会重新加载模型。 这由config / environments / development.rb中的以下默认行控制:

 config.cache_classes = false 

就“第三”模式而言,我认为你的意思是测试模式。 这也默认缓存模型(请参阅config / environments / test.rb),同样假设您不会在测试运行中途改变代码库。

顺便说一句,它不只是模型 – 我很确定这个设置包含’app’目录中的任何类。 此外,您会发现,即使在开发模式下,如果不重新启动应用程序,也无法更改位于应用程序中其他位置的类(例如“lib”)。

这三种模式的行为配置如下:

rails_app/config/environments/[production|development|test].rb

因此,这取决于您的配置三种模式的不同之处。