【问题标题】:How to prepend rails view paths in rails 3.2 (ActionView::PathSet)如何在 rails 3.2 (ActionView::PathSet) 中添加 rails 视图路径
【发布时间】:2012-06-07 12:15:59
【问题描述】:

我正在尝试将视图添加到 rails 视图数组,例如

prepend_view_path("#{Rails.root}/app/views/custom/blah")

这很好用,但是在我的测试套件中我一直看到

弃用警告:process_view_paths 已弃用,将从 Rails 3.2 中删除。

经过一番研究,我看到提到了 ActionView::PathSet,但在搜索 google 或 Rails API 文档中找不到任何帮助。我需要知道如何在 rails 3.2 中使用这种预先添加路径的新方法

我真的很想摆脱这个警告。有什么想法吗?

【问题讨论】:

  • Rails 3.2.12 - 我在应用程序日志和 rspec 输出中都没有收到任何关于弃用的通知

标签: ruby-on-rails


【解决方案1】:

如果它是动态的(基于每个请求设置):

class ApplicationController < ActionController::Base
  before_filter :set_view_path

  def set_view_path
    prepend_view_path "#{Rails.root}/app/views/custom/blah"
  end  
end

我认为它已发送至 AbstractController::ViewPaths,但仍可从控制器获得 - 应该不会被弃用。

如果您预先添加静态固定路径:

# config/application.rb    
config.paths.app.views.unshift("#{Rails.root}/app/views/custom/blah")

【讨论】:

  • 假设运行时您的意思是基于控制器实例的每个请求
  • 是的,我的意思是,我不知道模板路径在“编译时”可能是什么。它需要是动态的,我目前在控制器中这样做
  • 我会查看你发布的 ryans 视频
  • 注意,从 Rails 3.1 开始不推荐使用 config.paths.app... 语法。我认为应该是config.paths['app/views'].unshift...
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-04-11
  • 1970-01-01
  • 2013-10-20
  • 2011-08-30
相关资源
最近更新 更多