感谢 John Long,Rails 现在支持 每个控制器拥有多个视图路径。对于 90% 的应用来说,这可能不会有太大的区别。但是,对于那些想要将各种开源应用产品化的朋友来说,你们现在可以这样做了。
/beast/trunk$ mkdir vendor/plugins/test_view_paths
/beast/trunk$ cd vendor/plugins/test_view_paths
/beast/trunk/vendor/plugins/test_view_paths$ mkdir views
/beast/trunk/vendor/plugins/test_view_paths$ echo “ActionController::Base.view_paths.unshift File.join(directory, ‘views’)” > init.rb
你所做的就是创建了一个最小的 Rails 插件,它将插件中的 'views' 目录插入到 #view_paths 数组的开头。现在,将一个来自 Rails 应用的视图复制到插件的 'views' 目录中,做一些显著的更改,然后启动你的应用。你会注意到它选择了你的插件视图而不是应用程序的视图。