2011-02-24 15 views
3

我有轨控制器红宝石会显示不同的形式登出用户不是登录的用户不同的看法。Ruby on Rails的为同样的动作(根据用户的角色)

什么是接近最好的方法? (是以下方式好吗?)

class UsersController < ApplicationController 
     def index 
     if logged_in && is_admin 
      render 'admin_index' 
     end 
     #use default index 
     end 
    end 

回答

5

当然多数民众赞成罚款,除非你可能会得到一个“无法呈现动作两次”类型的错误(如即时消息管理,并记录在它仍然会尝试渲染管理员后呈现默认动作)

class UsersController < ApplicationController 
     def index 
     if logged_in && is_admin 
      render 'admin_index' 
     else 
      render 
     end 

     end 
    end 

可能会更好

+0

或者,我相信'render'admin_index'和return'会工作,以避免'else'子句。 – sevenseacat 2011-02-24 01:26:15

+1

另外'LOGGED_IN?'和'is_admin?'是优选的,即使他们是列名。 – zetetic 2011-02-24 01:28:12

+0

是的,这也可以 – macarthy 2011-02-24 01:28:22

1

你总是可以做到这一点:

if condition 
render :page and return 

正如你可以这样做:

if condition 
redirect_to and return 
相关问题