我是ROR的新手,我目前正在构建一个简单的平台应用程序,用户可以登录仪表板并注册服务。现在我有几个页面仅供用户使用,例如欢迎页面或how_to页面。我想限制访问这些页面只能在用户登录后访问。
我的问题是,我是否需要在UserController中单独执行操作,以显示这些视图模板的链接?例如
class UsersController < ApplicationController
def welcome
end
def howto
end
end
这是我的路线档案。
resources :users
resources :sessions, only: [:new,:create,:destroy]
root 'main#index'
match '/pro', to: 'main#pro', via:'get'
match '/signup', to: 'users#new', via: 'get'
match '/signin', to: 'sessions#new', via: 'get'
match '/signout', to: 'sessions#destroy', via: 'delete'
编辑:
好吧我想我现在开始拍照了。在我的情况下,同一个视图模板没有条件内容,仪表板模板的布局和结构与我的公共视图模板完全不同。我可以限制访问我的整个控制器,这需要用户在查看之前登录。我的问题仍然存在。如果我只为授权用户提供了一堆视图模板,我是否需要在受限制的控制器中为每个模板创建一个新操作?
答案 0 :(得分:0)
您可以对所有页面使用一个操作,并编写如下内容:
get "/:page" => "user#page", constraints: { page: /welcome|about/ }
然后在你的控制器中:
def page
render params[:page]
end