我正在思考以下场景的最佳解决方案:
我们有一个基本的网站,每个人都可以在没有注册/登录的情况下导航。控制器和视图存在于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}}。
答案 0 :(得分:0)
我可以想到两种方式:
创建ApplicationController
的子类:
class SignedOutApplicationController < ApplicationController
before_action :redirect_if_signed_in
...
end
并使其成为所有非用户控制器的子类。为了对称,我会创建一个SignedInController