我正在尝试在我的CMS中进行干燥渲染。现在我有了这样的解决方案:
class PagesController < ApplicationController
before_action :set_page, only: [:show]
before_action :render_view, only: [:index, :show]
# TODO refactor multiple render
def index
@page = Admin::Page.root
end
def show
end
private
def set_page
@page = Admin::Page.find(params[:id])
end
def render_view
render "admin/templates/_#{@page.template}.html.haml"
end
end
但是我不确定它是否是一个在回调中设置渲染的好方法,并且在索引上还有undefined method 'template' for nil:NilClass
错误,因为我在使用实例变量page
时尚未定义因为它是before_action
回调。