【发布时间】:2015-01-18 00:42:33
【问题描述】:
我正在将我制作的 Sinatra 应用程序移回 Rails 4。在我的 Sinatra 应用程序中,我有一个名为“logged_in”的助手,如果用户登录则返回 true,否则返回 false。然后在我的路线中,我有以下...
get '/' do
if logged_in
erb :"admin/a_index"
else
erb :index
end
end
get '/about' do
if logged_in
erb :"admin/a_about"
else
erb :about
end
end
get '/contact' do
if logged_in
erb :"admin/a_contact"
else
erb :contact
end
end
因此,如果用户已登录,它将为该特定静态页面呈现不同的管理视图(位于子文件夹中)。如果用户没有登录,它将呈现一个默认的静态页面。
如何在 Rails 4 中实现这一点?
我是否必须指定额外的管理员路由,或者我可以执行以下操作...?
class PagesController < ApplicationController
def home
if logged_in
render #admin_home
else
render #home
end
end
def about
if logged_in
render #admin_about
else
render #about
end
end
def contact
if logged_in
render #admin_contact
else
render #contact
end
end
end
只有以下路线...
Rails.application.routes.draw do
root 'pages#home'
get '/home' => 'pages#home'
get '/about' => 'pages#about'
get '/contact' => 'pages#contact'
get '/signup' => 'users#new'
post '/users' => 'users#create'
get '/login' => 'sessions#new'
post '/login' => 'sessions#create'
get '/logout' => 'sessions#destroy'
end
【问题讨论】:
标签: ruby-on-rails ruby-on-rails-4 routes views rails-routing