如何将命名空间的控制器/视图分配给登录用户?

时间:2017-04-12 15:14:35

标签: ruby-on-rails devise

我正在思考以下场景的最佳解决方案:

我们有一个基本的网站,每个人都可以在没有注册/登录的情况下导航。控制器和视图存在于app / controllers和app / views / model_name下。

当用户注册并登录(使用设计)时,她应该被重定向到app / users /下的不同控制器,并相应地转到app / views / users /下的不同视图。

我知道,我可以根据signed_in?从我的视图中呈现不同的部分,我也可以从默认控制器重定向到嵌套在user目录下的控制器,但我觉得还有更多一般方法。

我想知道是否可以单独使用路由(当然还有具有不同控制器/视图对的目录结构)。

示例:

app/
  controllers/
    albums_controller.rb
    users/
      albums_controller.rb

  views/
    albums/
      index.rb
    users/
      albums/
        index.rb

修改:我rewrote此帖更具体一点,并指向覆盖after_sign_in_path_for的{​​{3}}。

1 个答案:

答案 0 :(得分:0)

我可以想到两种方式:

  • redirectioncustom constraint

  • 合并
  • 创建ApplicationController的子类:

    class SignedOutApplicationController < ApplicationController
      before_action :redirect_if_signed_in
      ...
    end
    

    并使其成为所有非用户控制器的子类。为了对称,我会创建一个SignedInController