回答編集履歴
2
回答の誤りを修正(アカウント更新なら :account_update を指定するのが正しい)
answer
CHANGED
@@ -19,4 +19,33 @@
|
|
19
19
|
- devise_parameter_sanitizer.for(:sign_in) << [:user_name, :select]
|
20
20
|
+ devise_parameter_sanitizer.permit(:sign_up, keys: [:user_name, :select])
|
21
21
|
end
|
22
|
+
```
|
23
|
+
|
24
|
+
--
|
25
|
+
|
26
|
+
## 追記(2020/3/5)
|
27
|
+
|
28
|
+
すみません。上記の回答で
|
29
|
+
|
30
|
+
> 【2】アカウント登録・編集画面を変えたいなら :sign_in ではなく :sign_up を指定してください。
|
31
|
+
|
32
|
+
と書きましたが、間違いでした。
|
33
|
+
正しくは
|
34
|
+
|
35
|
+
アカウント登録なら :sign_up を指定
|
36
|
+
アカウント更新なら :account_update を指定
|
37
|
+
|
38
|
+
です。
|
39
|
+
最終的には以下のようなコードになると思います。
|
40
|
+
|
41
|
+
```rb
|
42
|
+
before_action :configure_permitted_parameters, if: :devise_controller?
|
43
|
+
|
44
|
+
private
|
45
|
+
|
46
|
+
# 登録&更新時にユーザーネームとセレクトエージェントを許可する
|
47
|
+
def configure_permitted_parameters
|
48
|
+
devise_parameter_sanitizer.permit(:sign_up, keys: [:user_name, :select])
|
49
|
+
devise_parameter_sanitizer.permit(:account_update, keys: [:user_name, :select])
|
50
|
+
end
|
22
51
|
```
|
1
誤字修正
answer
CHANGED
@@ -2,9 +2,9 @@
|
|
2
2
|
|
3
3
|
【1】before_action で指定しているメソッド名と、実際のメソッド名が一致していないようです。
|
4
4
|
|
5
|
-
【2】アカウント登録・編集画面を変えたいなら `:sign_in` でなく `:sign_up` を指定してください。
|
5
|
+
【2】アカウント登録・編集画面を変えたいなら `:sign_in` ではなく `:sign_up` を指定してください。
|
6
6
|
|
7
|
-
【3】 `devise_parameter_sanitizer.for`
|
7
|
+
【3】 `devise_parameter_sanitizer.for` というメソッド、見慣れなかったので調べたのですが、かなり古い書き方みたいです。
|
8
8
|
[公式のページで紹介されている新しい書き方(devise_parameter_sanitizer.permit)](https://github.com/heartcombo/devise#strong-parameters) に変えてみてください。
|
9
9
|
|
10
10
|
|