我的 Rails 应用程序 /index 路径应该显示一个页面给登录用户,一个完全不同的页面给管理员用户,一个完全不同的页面给未登录的用户。
所以,一个控制器(HomeController),一个动作(index),三个视图。
我可以通过两种方式实现这一点:
- 插入
if
子句views/home/index.html.erb
使其做正确的事。 - 以某种方式将条件逻辑放入控制器中(让控制器找出用户是谁),然后相应地呈现不同的布局,如http://guides.rubyonrails.org/layouts_and_rendering.html中的2.2.12 查找布局中所述。
我有一种强烈的感觉,后一种解决方案是正确的。但我不确定如何实现它,用户控制器是一个完全不同的控制器。我的家庭控制器如何找出当前用户是谁来决定要呈现什么视图?