現在ECサイトを作成しています。
OrdersController(注文処理部分)のコードは全く一緒なのですが、
画面のレイアウトを利用者ごと(管理者画面とユーザー画面)で別々のレイアウトを利用したいです。
deviseを利用しており、
参考サイト
をベースにcontroller部分でdeviseのヘルパーを利用して切り替えたいと思いましたがエラーが出て画面が表示できません。
わかる方がいらっしゃればよろしくお願いいたします。
###期待する動作
ユーザーと管理者で別のレイアウトを読み込みたい
###動作環境
OS:mac
Ruby:2.3.5
Ruby on Rails: 4.2.5
MySQL: 5.7.18
devise(gem):4.4.0
###参考サイト
Railsでビューのレイアウトを指定する
###試したこと
deviseのヘルパーメソッドが使えないかと下記のコードを記述して読み込めないか試しましたがエラーが出て画面が表示されませんでした。
ruby
1class OrdersController < ApplicationController 2 3 if user_signed_in? 4 layout "user_layout" 5 elsif manager_signed_in? 6 layout "manager_layout" 7 end 8 9 def new 10 end 11. 12.
###関連のありそうな現在のソースコード
config/routes.rb
ruby
1Rails.application.routes.draw do 2 3#管理者用 4 devise_for :managers, controllers:{ 5 sessions: 'managers/sessions', 6 passwords: 'managers/passwords', 7 registrations: 'managers/registrations' 8 } 9 resources :managers, :only => [:index, :show] 10 11# ユーザー用 12 devise_for :users, controllers:{ 13 sessions: 'users/sessions', 14 passwords: 'users/passwords', 15 registrations: 'users/registrations' 16 } 17 resources :users, :only => [:index, :show] 18 19 resources :orders 20end
app/controllers/orders_controller.rb
ruby
1class OrdersController < ApplicationController 2 3 if user_signed_in? 4 layout "user_layout" 5 elsif manager_signed_in? 6 layout "manager_layout" 7 end 8 9 def new 10 end 11. 12.
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/01/23 14:53