5

默认情况下,Rails 可以在文件名中找到具有格式、区域设置和模板语言的视图(所以我可以创建index.de.json.erb

是否可以向视图的文件名添加另一个自定义参数?

我想传递当前的子域,所以http://foo.example.com/会 renderindex.foo.html.erbhttp://bar.example.com/render index.bar.html.erb(它们都带有index.html.erb后备)。

4

2 回答 2

9
于 2012-08-30T20:22:45.290 回答
1

我认为您在这里不需要自定义处理程序。您不需要对模板进行一些预置,但您只需要使您的模板成为特定于域的模板。

我会考虑做这样的事情:

# in ApplicationController:
  before_filter :set_view_paths

  def set_view_paths
    self.class.view_paths = Rails.root.join('app', 'views', controller_name, request.subdomain)
  end

然后,您必须将foo域的模板放入foo每个views/controller_name路径的文件夹中。

还要检查append/prepend_view_path文档以在没有域视图的情况下允许默认值。

于 2012-08-30T20:33:45.193 回答