teratail header banner
teratail header banner
質問するログイン新規登録

質問編集履歴

4

before_actionについてコメントコメントアウトして使わないようにしています

2021/09/23 13:46

投稿

hiromix
hiromix

スコア7

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 古い記述だったので改めて追加しました

2021/09/23 13:46

投稿

hiromix
hiromix

スコア7

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
- @users = User.all
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追加しました

2021/09/23 13:29

投稿

hiromix
hiromix

スコア7

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]) だとユーザー名が表示されました

2021/09/23 07:42

投稿

hiromix
hiromix

スコア7

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