用户登录后是否可以呈现不同的页面? Rails 4设计

时间:2013-06-12 18:25:11

标签: ruby-on-rails devise routes ruby-on-rails-4

我正在尝试在用户登录时呈现不同的主页,但是Devise会继续呈现相同的页面。有可能改变这个吗?我知道你可以直接在主页源代码中完成它,但这似乎很长而且效率低下。例如,我知道如何检查用户是否已登录,但是如何在登录时呈现不同的视图?

1 个答案:

答案 0 :(得分:1)

您可以设置after_sign_in_path,以便在登录后直接将用户登录到特定页面,如果这就是您所追求的目标。

的ApplicationController:

def after_sign_in_path_for(resource)
  some_path
end

Devise会自动尊重这一点。

More details

对于不同登录的主页,您可以将root_url操作设置为重定向登录用户,也可以在视图中更改指向主页的链接。

1)控制器重定向(我的偏好)

SomeController
  def home_page
    if current_user
      redirect_to account_path
    end
  end
end

2)或在视图中

<%= link_to 'Home', (current_user ? account_path : root_url) %>