我在我的RoR应用程序中有一个操作,它根据运行它的用户调用不同的脚本。
def index
@user = User.find(session[:user_id], :include => [ :balances, :links, :comments ])
render :file => "#{RAILS_ROOT}/app/views/user/index_#{@user.class.to_s.downcase}.html.erb"
end
如何使调用呈现更优雅和简单?
答案 0 :(得分:4)
尝试:
render :template => "user/index_%s" % @user.class.to_s.downcase
答案 1 :(得分:1)
你可以将它变为部分(index_whatever.html.erb - > _index_whatever.html.erb),它看起来像这样:
def index
@user = User.find(session[:user_id], :include => [ :balances, :links, :comments ])
render :partial => "index_#{@user.class.to_s.downcase}"
end
另外,我要做的是在用户模型中添加一个方法,如下所示:
def view
"index_#{class.to_s.downcase}"
end
所以你的索引动作是:
def index
@user = User.find(session[:user_id], :include => [ :balances, :links, :comments ])
render :partial => @user.view
end