如何亲吻和聪明的这种方法

时间:2010-09-07 18:06:44

标签: ruby-on-rails performance

我在我的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

如何使调用呈现更优雅和简单?

2 个答案:

答案 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