0

我的 Rails 应用程序 /index 路径应该显示一个页面给登录用户,一个完全不同的页面给管理员用户,一个完全不同的页面给未登录的用户。

所以,一个控制器(HomeController),一个动作(index),三个视图。

我可以通过两种方式实现这一点:

  1. 插入if子句views/home/index.html.erb使其做正确的事。
  2. 以某种方式将条件逻辑放入控制器中(让控制器找出用户是谁),然后相应地呈现不同的布局,如http://guides.rubyonrails.org/layouts_and_rendering.html中的2.2.12 查找布局中所述。

我有一种强烈的感觉,后一种解决方案是正确的。但我不确定如何实现它,用户控制器是一个完全不同的控制器。我的家庭控制器如何找出当前用户是谁来决定要呈现什么视图?

4

1 回答 1

1

您可以访问所有控制器中的 current_user 对象,以检查用户是否已登录。我们也可以通过 current_user 对象获取用户角色

current_user.role_name

您可以传递此角色名称以将部分呈现为文件名(保留不同的文件)。

于 2012-12-20T17:02:24.127 回答