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

回答編集履歴

2

2020/08/25 07:20

投稿

naokit-dev
naokit-dev

スコア424

answer CHANGED
@@ -1,23 +1,27 @@
1
- params[:session]:emailや:passwordいった属性を扱う必要あるのと思い以下のように回答しました
1
+ やはりそもそもsessionが空なことが問題です
2
2
 
3
- ```
4
- private
3
+ form_withの`scope`の挙動がよくわかっていないのですが以下のうようにするとどうですか?
5
4
 
6
- def session_params
5
+
7
- params.require(:session).permit(:email, :password) #この行に問題があるようです。
8
- end
9
6
  ```
7
+ = form_with scope: :sessions, local: true do |f| #sessions => sessionでいかがでしょうか
8
+ .form-group
9
+ = f.label :email, 'メールアドレス'
10
+ = f.text_field :email, class: 'form-control', id: 'session_email'
11
+ .form-group
12
+ = f.label :password, 'パスワード'
13
+ = f.password_field :password, class: 'form-control', id: 'session_password'
14
+ = f.submit 'ログインする', class: 'btn btn-primary'
15
+ ```
10
16
 
11
- この部分がないとどうですか?
17
+ [Ruby on Rails 5.1 リリースノート - Railsガイド](https://railsguides.jp/5_1_release_notes.html#form-for%E3%81%A8form-tag%E3%81%AEform-with%E3%81%B8%E3%81%AE%E7%B5%B1%E5%90%88)
12
18
 
13
- ---
14
- session[:user_id]は使用されているようなので
15
- 以下で置き換えるといかがでしょうか
19
+ 以下はそのまま
16
20
 
17
21
  ```
18
22
  private
19
23
 
20
24
  def session_params
21
- params.require(:session).permit(:user_id) #ほか必要があれば属性追記
25
+ params.require(:session).permit(:email, :password) #この行問題があるようです。
22
26
  end
23
27
  ```

1

変更

2020/08/25 07:20

投稿

naokit-dev
naokit-dev

スコア424

answer CHANGED
@@ -1,3 +1,5 @@
1
+ params[:session]が:emailや:passwordといった属性を扱う必要があるのかと思い以下のように回答しました
2
+
1
3
  ```
2
4
  private
3
5
 
@@ -6,4 +8,16 @@
6
8
  end
7
9
  ```
8
10
 
9
- この部分がないとどうですか?
11
+ この部分がないとどうですか?
12
+
13
+ ---
14
+ session[:user_id]は使用されているようなので
15
+ 以下で置き換えるといかがでしょうか
16
+
17
+ ```
18
+ private
19
+
20
+ def session_params
21
+ params.require(:session).permit(:user_id) #ほかに必要があれば属性追記
22
+ end
23
+ ```