Ruby On Rails针对同一操作的不同视图(基于用户角色)

时间:2011-02-24 01:15:03

标签: ruby-on-rails

我在rails控制器上有一个ruby,它会为已注销的用户显示与登录用户不同的表单。

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

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

2 个答案:

答案 0 :(得分:5)

当然没问题,除非您可能会遇到“无法渲染动作两次”类型错误(如果我是管理员并且登录后仍会尝试在呈现管理操作后呈现默认值)

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

      end
    end

可能会更好

答案 1 :(得分:1)

您可以随时执行此操作:

if condition
render :page and return

就像你可以这样做:

if condition
redirect_to and return