回答編集履歴
5
タイトルを付けました。
test
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
###一部修正しました
|
1
|
+
###一部修正しました(2)
|
2
2
|
|
3
3
|
|
4
4
|
|
4
underscoreを削除
test
CHANGED
@@ -3,6 +3,8 @@
|
|
3
3
|
|
4
4
|
|
5
5
|
今回のようにnamespace使用時にcontroller_nameでは"top"のみが返るのでnamespaceまで取得できるようにcontroller_pathに変更しました。
|
6
|
+
|
7
|
+
この場合underscoreも不要になりますので削除いたしました。
|
6
8
|
|
7
9
|
|
8
10
|
|
@@ -26,7 +28,7 @@
|
|
26
28
|
|
27
29
|
def set_layout
|
28
30
|
|
29
|
-
if controller_path.
|
31
|
+
if controller_path.match(%r{\A(staff|admin|customer)/})#訂正箇所
|
30
32
|
|
31
33
|
Regexp.last_match[1]
|
32
34
|
|
3
byebugを削除
test
CHANGED
@@ -26,19 +26,13 @@
|
|
26
26
|
|
27
27
|
def set_layout
|
28
28
|
|
29
|
-
byebug
|
30
|
-
|
31
29
|
if controller_path.underscore.match(%r{\A(staff|admin|customer)/})#訂正箇所
|
32
30
|
|
33
31
|
Regexp.last_match[1]
|
34
32
|
|
35
|
-
byebug
|
36
|
-
|
37
33
|
else
|
38
34
|
|
39
35
|
"customer"
|
40
|
-
|
41
|
-
byebug
|
42
36
|
|
43
37
|
end
|
44
38
|
|
2
(訂正)今回のようにnamespace使用時にcontroller_nameでは"top"のみが返るのでcontroller_pathに変更
test
CHANGED
@@ -1 +1,49 @@
|
|
1
|
+
###一部修正しました
|
2
|
+
|
3
|
+
|
4
|
+
|
5
|
+
今回のようにnamespace使用時にcontroller_nameでは"top"のみが返るのでnamespaceまで取得できるようにcontroller_pathに変更しました。
|
6
|
+
|
7
|
+
|
8
|
+
|
9
|
+
**(原因)**
|
10
|
+
|
11
|
+
コントローラの名前はcontroller_name で取得できますが namespace までは取得できないので、Staff::TopController の場合も Admin::TopController の場合も同じ top が返ってくる。
|
12
|
+
|
13
|
+
|
14
|
+
|
15
|
+
**(訂正後)**
|
16
|
+
|
17
|
+
```
|
18
|
+
|
19
|
+
class ApplicationController < ActionController::Base
|
20
|
+
|
21
|
+
|
22
|
+
|
23
|
+
layout :set_layout
|
24
|
+
|
25
|
+
private
|
26
|
+
|
27
|
+
def set_layout
|
28
|
+
|
29
|
+
byebug
|
30
|
+
|
31
|
+
if controller_path.underscore.match(%r{\A(staff|admin|customer)/})#訂正箇所
|
32
|
+
|
1
|
-
|
33
|
+
Regexp.last_match[1]
|
34
|
+
|
35
|
+
byebug
|
36
|
+
|
37
|
+
else
|
38
|
+
|
39
|
+
"customer"
|
40
|
+
|
41
|
+
byebug
|
42
|
+
|
43
|
+
end
|
44
|
+
|
45
|
+
end
|
46
|
+
|
47
|
+
end
|
48
|
+
|
49
|
+
```
|
1
同じ内容を2回 投稿してしまったため、こちらの内容を削除
test
CHANGED
@@ -1,41 +1 @@
|
|
1
|
-
unhappychoice様に提案いただいたコードそのままだと下記のエラーが発生いたしましたので
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
![イメージ説明](ed53e414ef3597078cc441de59c5aa23.jpeg)
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
下記のように
|
10
|
-
|
11
|
-
controller → controller_name
|
12
|
-
|
13
|
-
|
1
|
+
※解決内容を2重投稿してしましましたのでこちらは削除しました。
|
14
|
-
|
15
|
-
```
|
16
|
-
|
17
|
-
class ApplicationController < ActionController::Base
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
layout :set_layout
|
22
|
-
|
23
|
-
private
|
24
|
-
|
25
|
-
def set_layout
|
26
|
-
|
27
|
-
if controller_name.underscore.match(%r{\A(staff|admin|customer)/})
|
28
|
-
|
29
|
-
Regexp.last_match[1]
|
30
|
-
|
31
|
-
else
|
32
|
-
|
33
|
-
"customer"
|
34
|
-
|
35
|
-
end
|
36
|
-
|
37
|
-
end
|
38
|
-
|
39
|
-
end
|
40
|
-
|
41
|
-
```
|