如果index.html.erb文件不在模型的目录中,例如用户,rails将在views / application目录中查找它。
views/user
*no index.html.erb file*
views/application
index.html.erb
如果控制器中没有显式的渲染请求,则会自动发生此回退。
然而,如果我这样做,这似乎不起作用
render 'users/index'
导致"模板丢失"错误。
有没有办法请求渲染,如果它没有在模型的视图目录中找到它,它将回退到views / application目录?
答案 0 :(得分:0)
尝试创建受保护的方法render_with_fallback
并使用现有的私有方法default_template_name
,如下所示:
def render_with_fallback(name, options = {})
view = template_exists?(name) ? name : default_template_name
render(view, options)
end