我有两种不同的布局,一种是完全自定义的,另一种是引导的。对于管理员,我们想要渲染一个引导视图,对于非管理员,我们正常渲染它。在大多数情况下,这很简单,因为管理员和用户不会共享很多视图 - 但有一些。
我最初的想法涉及覆盖render
,以便它检查是否有文件的引导版本。因此,例如,将会有_user.html.erb
并且_user.bootstrap.html.erb
会有特定于引导程序的模板。
我不想如此理想地修改任何控制器,类似的东西render 'form'
会表现得很聪明并检查是否有_form.bootstrap.html.erb
,如果没有,它会回退到_form.html.erb
第一次尝试
我的第一次尝试看起来像这样
# I don't think this is the actual method signature of render
def render(options=nil, extra_options, &block)
# if it should render bootstrap and options is a string and there exists a bootstrap version
# set it up to render the bootstrap view
super(options, extra_options, &b)
end
当前尝试
我正在考虑注册一个模板,该模板基本上检查文件是否存在,然后使用 erb。我还没有在这方面取得任何进展。