给定 Rails 4.2,Ruby 2.3.1。
理论上,Rails 应该允许您完全重置视图路径,如此处所示,在源代码中。
但是,当我通过控制器回调重置 view_paths 时#view_paths=
,会发生意外情况。
> view_paths.size
=> 2
> new_paths = view_paths.reject { |vp| rejection criteria }
> new_paths.size
=> 1
> view_paths = new_paths
> view_paths.size
=> 2
> _view_paths.size
=> 1
self._view_paths
已成功重置,但#view_paths
尚未获取这些更改,尽管只是self._view_paths
. 为什么是self._view_paths
正确的,而#view_paths
不是?
注意:这很重要,因为 Rails#view_paths
在搜索视图时使用,而不是self._view_paths
.