質問編集履歴
4
before_actionについてコメントコメントアウトして使わないようにしています
title
CHANGED
File without changes
|
body
CHANGED
@@ -11,7 +11,8 @@
|
|
11
11
|
|
12
12
|
```
|
13
13
|
class UsersController < ApplicationController
|
14
|
-
before_action :set_user, only: ["index", "show"]
|
14
|
+
#before_action :set_user, only: ["index", "show"]
|
15
|
+
※before_actionはよくわからないのでコメントアウトしています
|
15
16
|
|
16
17
|
def index
|
17
18
|
@users = User.all
|
@@ -22,6 +23,7 @@
|
|
22
23
|
|
23
24
|
end
|
24
25
|
```
|
26
|
+
|
25
27
|
他にも下記のように書いたりしています
|
26
28
|
@user = User.find_by(params[:name])
|
27
29
|
@user = User.find(params[:id])
|
3
def show 古い記述だったので改めて追加しました
title
CHANGED
File without changes
|
body
CHANGED
@@ -8,12 +8,23 @@
|
|
8
8
|
```
|
9
9
|
|
10
10
|
controller
|
11
|
+
|
11
12
|
```
|
12
13
|
class UsersController < ApplicationController
|
14
|
+
before_action :set_user, only: ["index", "show"]
|
15
|
+
|
16
|
+
def index
|
17
|
+
@users = User.all
|
18
|
+
end
|
19
|
+
|
13
20
|
def show
|
14
|
-
|
21
|
+
@user = User.find_by(params[:account_name])
|
22
|
+
|
15
23
|
end
|
16
24
|
```
|
25
|
+
他にも下記のように書いたりしています
|
26
|
+
@user = User.find_by(params[:name])
|
27
|
+
@user = User.find(params[:id])
|
17
28
|
|
18
29
|
routes
|
19
30
|
```
|
2
modelとroutes追加しました
title
CHANGED
File without changes
|
body
CHANGED
@@ -6,6 +6,8 @@
|
|
6
6
|
Viewテンプレート
|
7
7
|
<h1><%= user.name %>のプロフィールページ</h1>
|
8
8
|
```
|
9
|
+
|
10
|
+
controller
|
9
11
|
```
|
10
12
|
class UsersController < ApplicationController
|
11
13
|
def show
|
@@ -13,6 +15,35 @@
|
|
13
15
|
end
|
14
16
|
```
|
15
17
|
|
18
|
+
routes
|
19
|
+
```
|
20
|
+
Rails.application.routes.draw do
|
21
|
+
|
22
|
+
devise_for :users
|
23
|
+
root 'users#index'
|
24
|
+
resources :users, only: [:show,:index,:edit,:update,:destroy]
|
25
|
+
end
|
26
|
+
```
|
27
|
+
|
28
|
+
model
|
29
|
+
```
|
30
|
+
class User < ApplicationRecord
|
31
|
+
# Include default devise modules. Others available are:
|
32
|
+
# :confirmable, :lockable, :timeoutable, :trackable and :omniauthable
|
33
|
+
devise :database_authenticatable, :registerable,
|
34
|
+
:recoverable, :rememberable, :validatable
|
35
|
+
|
36
|
+
validates :account_name,
|
37
|
+
uniqueness: true,
|
38
|
+
format: { with: /\A[a-zA-Z\d]+\z/ },
|
39
|
+
length: { minimum: 3, maximum: 25 }
|
40
|
+
|
41
|
+
def to_param
|
42
|
+
return self.account_name
|
43
|
+
end
|
44
|
+
end
|
45
|
+
```
|
46
|
+
|
16
47
|
これで表示させると、
|
17
48
|
|
18
49
|
```
|
1
User.find(params[:id]) だとユーザー名が表示されました
title
CHANGED
File without changes
|
body
CHANGED
@@ -37,4 +37,9 @@
|
|
37
37
|
```
|
38
38
|
|
39
39
|
上記で問題なく動くので、user.nameをusers/showでも使えるものかと思っていましたが使えません。
|
40
|
+
|
41
|
+
ただ、
|
42
|
+
`@user = User.find(params[:id])`にして http://localhost:3000/users/9 などでそのページに移動すると、ユーザー名は表示されます。
|
43
|
+
|
44
|
+
|
40
45
|
どなたかお詳しい方ご教授お願い致しますm(__)m
|