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
因此,这取决于您的配置三种模式的不同之处。
- 在Rails中捕获UTM参数
- execjs在windows上做michael hartl教程的问题…用户#index中的ExecJS :: RuntimeError
- 如何在rails 3.2中添加rails视图路径(ActionView :: PathSet)
- 限制Rails中的“每个”列表
- 手动路由和“无法找到具有id = new的用户”错误
- 在rails_for @article和form_for:article中的rails差异
- Rails:渲染集合部分:获取部分内部集合的大小
- ActionController :: RoutingError(没有路由匹配“/assets/images/control_top.png”):在rails 3.2.8中
- Ruby On Rails:访问控制器中的link_to参数