質問編集履歴
7
書式の改善
test
CHANGED
@@ -1 +1 @@
|
|
1
|
-
|
1
|
+
Vue.js/Rails(bcrypt)にてパスワード項目のみ連携(Vue.js→Rails)できない
|
test
CHANGED
@@ -40,9 +40,11 @@
|
|
40
40
|
|
41
41
|
内容に記載の通り、デバッグ(byebug)にてVue.js側からRails側に情報がストロングパラメータにて情報が渡ることを確認済です。ただし、ユーザ名・メールアドレスのみ連携できており、パスワードはnilとなっております。
|
42
42
|
|
43
|
-
Vue.js側のデバッグができておりませんので、実施いたします。
|
43
|
+
Vue.js側のデバッグができておりませんので、調べて実施いたします。
|
44
|
+
|
45
|
+
|
46
|
+
|
44
|
-
|
47
|
+
###コード等
|
45
|
-
|
46
48
|
|
47
49
|
```error
|
48
50
|
|
6
書式の改善
test
CHANGED
File without changes
|
test
CHANGED
@@ -1,14 +1,20 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
な
|
1
|
+
###解決したいこと
|
2
|
+
|
3
|
+
画面入力値のパスワード項目を連携(Vue.js→Rails)させたい。
|
4
|
+
|
5
|
+
|
6
|
+
|
7
|
+
###内容
|
8
|
+
|
9
|
+
今回、rails+vue.jsにてWEBアプリケーションを初めて試作するにあたり、質問いたします。
|
10
|
+
|
11
|
+
また、初の投稿となるため、情報等不足しておりましたらご指摘ください。よろしくお願い申し上げます。
|
12
|
+
|
13
|
+
|
14
|
+
|
15
|
+
ユーザ登録画面にて必要項目を入力後、HTTP(post)を発行した際に、サーバ側(rails)にてパスワード項目であるpassword/password_confirmationともにnilとなってしまいます。また、本事象が発生しているため、バリデーション【has_secure_password】が動作し、ユーザは登録はできません。また、バリデーションが動作していることもあり、【bcrypt】は開発環境に導入できております。
|
16
|
+
|
17
|
+
なお、同一インスタンスで渡しているname/emailは正しく連携(Vue.js→Rails)できています。
|
12
18
|
|
13
19
|
|
14
20
|
|
@@ -30,6 +36,14 @@
|
|
30
36
|
|
31
37
|
|
32
38
|
|
39
|
+
###試したこと
|
40
|
+
|
41
|
+
内容に記載の通り、デバッグ(byebug)にてVue.js側からRails側に情報がストロングパラメータにて情報が渡ることを確認済です。ただし、ユーザ名・メールアドレスのみ連携できており、パスワードはnilとなっております。
|
42
|
+
|
43
|
+
Vue.js側のデバッグができておりませんので、実施いたします。
|
44
|
+
|
45
|
+
|
46
|
+
|
33
47
|
```error
|
34
48
|
|
35
49
|
Processing by HomeController#index as HTML
|
5
不足情報の追加
test
CHANGED
File without changes
|
test
CHANGED
@@ -6,7 +6,7 @@
|
|
6
6
|
|
7
7
|
|
8
8
|
|
9
|
-
ユーザ登録画面にて、必要項目を入力後、HTTP(post)を発行した際に、サーバ側(rails)にてパスワード項目
|
9
|
+
ユーザ登録画面にて、必要項目を入力後、HTTP(post)を発行した際に、サーバ側(rails)にてパスワード項目であるpassword/password_confirmationともにnilとなってしまいます。また、本事象が発生しているため、バリデーション【has_secure_password】が動作し、ユーザは登録はできません。また、バリデーションが動作していることもあり、【bcrypt】は開発環境に導入できております。
|
10
10
|
|
11
11
|
なお、同一インスタンスで渡しているname/emailは正しくクライアント→サーバ間で連携できています。
|
12
12
|
|
4
書式の改善
test
CHANGED
File without changes
|
test
CHANGED
@@ -6,13 +6,25 @@
|
|
6
6
|
|
7
7
|
|
8
8
|
|
9
|
-
ユーザ登録画面にて、HTTP(post)を発行した際に、パスワード項目がnilとなってしまいます。password/password_confirmation両方ともにnilです。
|
9
|
+
ユーザ登録画面にて、必要項目を入力後、HTTP(post)を発行した際に、サーバ側(rails)にてパスワード項目がnilとなってしまいます。password/password_confirmation両方ともにnilです。
|
10
|
-
|
10
|
+
|
11
|
-
なお、同一インスタンスで渡しているname/emailは正しくクライアント→サーバ間で
|
11
|
+
なお、同一インスタンスで渡しているname/emailは正しくクライアント→サーバ間で連携できています。
|
12
|
+
|
13
|
+
|
14
|
+
|
12
|
-
|
15
|
+
<入力項目>
|
16
|
+
|
13
|
-
|
17
|
+
・ユーザ名(name)
|
18
|
+
|
14
|
-
|
19
|
+
・メールアドレス(email)
|
20
|
+
|
21
|
+
・パスワード(password)
|
22
|
+
|
23
|
+
・パスワード確認(password_confirmation)
|
24
|
+
|
25
|
+
|
26
|
+
|
15
|
-
nilではなく、正しいフォームの値が渡るようにしたいです。
|
27
|
+
nilではなく、正しいフォームの入力値が渡るようにしたいです。
|
16
28
|
|
17
29
|
初歩的なミスだろうと思いますが、ご指摘のほど、よろしくお願い申し上げます。
|
18
30
|
|
3
不足コードの追加
test
CHANGED
File without changes
|
test
CHANGED
@@ -262,7 +262,35 @@
|
|
262
262
|
|
263
263
|
|
264
264
|
|
265
|
-
```rails
|
265
|
+
```railsModel
|
266
|
+
|
267
|
+
class User < ApplicationRecord
|
268
|
+
|
269
|
+
before_save { self.email = email.downcase }
|
270
|
+
|
271
|
+
VALID_EMAIL_REGEX = /\A[\w+\-.]+@[a-z\d\-.]+.[a-z]+\z/i
|
272
|
+
|
273
|
+
validates :name, presence: true, length: { maximum: 50 }
|
274
|
+
|
275
|
+
validates :email, presence: true, length: { maximum: 255 },
|
276
|
+
|
277
|
+
format: { with: VALID_EMAIL_REGEX },
|
278
|
+
|
279
|
+
uniqueness: { case_sensitive: false }
|
280
|
+
|
281
|
+
has_secure_password
|
282
|
+
|
283
|
+
validates :password, presence: true, length: { minimum: 6 }
|
284
|
+
|
285
|
+
end
|
286
|
+
|
287
|
+
|
288
|
+
|
289
|
+
```
|
290
|
+
|
291
|
+
|
292
|
+
|
293
|
+
```railsController
|
266
294
|
|
267
295
|
class Api::V1::UsersController < ApiController
|
268
296
|
|
2
個人情報を削除しました
test
CHANGED
File without changes
|
test
CHANGED
@@ -38,7 +38,7 @@
|
|
38
38
|
|
39
39
|
↳ app/controllers/api/v1/users_controller.rb:16:in `create'
|
40
40
|
|
41
|
-
[1m[36mUser Exists? (0.2ms)[0m [1m[34mSELECT 1 AS one FROM "users" WHERE LOWER("users"."email") = LOWER(?) LIMIT ?[0m [["email", "s
|
41
|
+
[1m[36mUser Exists? (0.2ms)[0m [1m[34mSELECT 1 AS one FROM "users" WHERE LOWER("users"."email") = LOWER(?) LIMIT ?[0m [["email", "test@test.com"], ["LIMIT", 1]]
|
42
42
|
|
43
43
|
↳ app/controllers/api/v1/users_controller.rb:16:in `create'
|
44
44
|
|
1
質問に不要箇所を削除しました
test
CHANGED
File without changes
|
test
CHANGED
@@ -18,7 +18,7 @@
|
|
18
18
|
|
19
19
|
|
20
20
|
|
21
|
-
```
|
21
|
+
```error
|
22
22
|
|
23
23
|
Processing by HomeController#index as HTML
|
24
24
|
|
@@ -52,7 +52,7 @@
|
|
52
52
|
|
53
53
|
|
54
54
|
|
55
|
-
```vue
|
55
|
+
```vue
|
56
56
|
|
57
57
|
<template>
|
58
58
|
|
@@ -184,43 +184,7 @@
|
|
184
184
|
|
185
185
|
<style scoped>
|
186
186
|
|
187
|
-
|
188
|
-
|
189
|
-
h1, h2, h3, h4, h5, h6 {
|
190
|
-
|
191
|
-
line-height: 1;
|
192
|
-
|
193
|
-
}
|
194
|
-
|
195
|
-
|
196
|
-
|
197
|
-
h1 {
|
198
|
-
|
199
|
-
font-size: 3em;
|
200
|
-
|
201
|
-
letter-spacing: -2px;
|
202
|
-
|
203
|
-
margin-bottom: 30px;
|
204
|
-
|
205
|
-
|
187
|
+
//関係ない
|
206
|
-
|
207
|
-
}
|
208
|
-
|
209
|
-
|
210
|
-
|
211
|
-
a {
|
212
|
-
|
213
|
-
text-align: center;
|
214
|
-
|
215
|
-
}
|
216
|
-
|
217
|
-
|
218
|
-
|
219
|
-
.button_wrapper {
|
220
|
-
|
221
|
-
text-align: center;
|
222
|
-
|
223
|
-
}
|
224
188
|
|
225
189
|
</style>
|
226
190
|
|
@@ -290,162 +254,106 @@
|
|
290
254
|
|
291
255
|
|
292
256
|
|
293
|
-
g
|
294
|
-
|
295
|
-
|
296
|
-
|
297
|
-
|
298
|
-
|
299
|
-
|
300
|
-
|
301
|
-
|
302
|
-
|
303
|
-
|
304
|
-
|
305
|
-
|
306
|
-
|
307
|
-
|
308
|
-
|
309
|
-
|
310
|
-
|
311
|
-
|
312
|
-
|
313
|
-
|
314
|
-
|
315
|
-
|
316
|
-
|
317
|
-
|
318
|
-
|
319
|
-
|
320
|
-
|
321
|
-
|
322
|
-
|
323
|
-
|
324
|
-
|
325
|
-
|
326
|
-
|
327
|
-
|
328
|
-
|
329
|
-
|
330
|
-
|
331
|
-
|
332
|
-
|
333
|
-
|
334
|
-
|
335
|
-
|
257
|
+
gem 'tzinfo-data', platforms: [:mingw, :mswin, :x64_mingw, :jruby]
|
258
|
+
|
259
|
+
|
260
|
+
|
261
|
+
```
|
262
|
+
|
263
|
+
|
264
|
+
|
265
|
+
```rails
|
266
|
+
|
267
|
+
class Api::V1::UsersController < ApiController
|
268
|
+
|
269
|
+
before_action :set_user, only: [:show]
|
270
|
+
|
271
|
+
|
272
|
+
|
273
|
+
def show
|
274
|
+
|
275
|
+
render json: @user
|
276
|
+
|
277
|
+
end
|
278
|
+
|
279
|
+
|
280
|
+
|
281
|
+
def index
|
282
|
+
|
283
|
+
@users = User.all
|
284
|
+
|
285
|
+
render json: @users
|
286
|
+
|
287
|
+
end
|
288
|
+
|
289
|
+
|
290
|
+
|
291
|
+
def create
|
292
|
+
|
293
|
+
@user = User.new(user_params)
|
294
|
+
|
295
|
+
debugger
|
296
|
+
|
297
|
+
if @user.save
|
298
|
+
|
299
|
+
render json: @user, status: :created
|
300
|
+
|
301
|
+
else
|
302
|
+
|
303
|
+
render json: { errors: @user.errors.full_messages }, status: :unprocessable_entity
|
304
|
+
|
305
|
+
end
|
306
|
+
|
307
|
+
end
|
308
|
+
|
309
|
+
|
310
|
+
|
311
|
+
private
|
312
|
+
|
313
|
+
|
314
|
+
|
315
|
+
def set_user
|
316
|
+
|
317
|
+
@user = User.find(params[:id])
|
318
|
+
|
319
|
+
end
|
320
|
+
|
321
|
+
|
322
|
+
|
323
|
+
def user_params
|
324
|
+
|
325
|
+
params.require(:user).permit(:name, :email, :password, :password_confirmation)
|
326
|
+
|
327
|
+
end
|
336
328
|
|
337
329
|
end
|
338
330
|
|
339
|
-
|
331
|
+
```
|
332
|
+
|
333
|
+
|
334
|
+
|
340
|
-
|
335
|
+
```route
|
336
|
+
|
341
|
-
|
337
|
+
Rails.application.routes.draw do
|
338
|
+
|
342
|
-
|
339
|
+
root 'home#index'
|
340
|
+
|
343
|
-
ge
|
341
|
+
get '/signup', to: 'home#index'
|
342
|
+
|
343
|
+
get '/users', to: 'home#index'#暫定です
|
344
|
+
|
345
|
+
get '/users/1', to: 'home#index'#暫定です
|
346
|
+
|
347
|
+
namespace :api, {format: 'json'} do
|
348
|
+
|
349
|
+
namespace :v1 do
|
350
|
+
|
351
|
+
resources :users, only: [:index, :show, :create]
|
352
|
+
|
353
|
+
end
|
354
|
+
|
355
|
+
end
|
344
356
|
|
345
357
|
end
|
346
358
|
|
347
|
-
|
348
|
-
|
349
|
-
gem 'tzinfo-data', platforms: [:mingw, :mswin, :x64_mingw, :jruby]
|
350
|
-
|
351
|
-
|
352
|
-
|
353
|
-
```
|
359
|
+
```
|
354
|
-
|
355
|
-
|
356
|
-
|
357
|
-
```rails側
|
358
|
-
|
359
|
-
class Api::V1::UsersController < ApiController
|
360
|
-
|
361
|
-
before_action :set_user, only: [:show]
|
362
|
-
|
363
|
-
|
364
|
-
|
365
|
-
def show
|
366
|
-
|
367
|
-
render json: @user
|
368
|
-
|
369
|
-
end
|
370
|
-
|
371
|
-
|
372
|
-
|
373
|
-
def index
|
374
|
-
|
375
|
-
@users = User.all
|
376
|
-
|
377
|
-
render json: @users
|
378
|
-
|
379
|
-
end
|
380
|
-
|
381
|
-
|
382
|
-
|
383
|
-
def create
|
384
|
-
|
385
|
-
@user = User.new(user_params)
|
386
|
-
|
387
|
-
debugger
|
388
|
-
|
389
|
-
if @user.save
|
390
|
-
|
391
|
-
render json: @user, status: :created
|
392
|
-
|
393
|
-
else
|
394
|
-
|
395
|
-
render json: { errors: @user.errors.full_messages }, status: :unprocessable_entity
|
396
|
-
|
397
|
-
end
|
398
|
-
|
399
|
-
end
|
400
|
-
|
401
|
-
|
402
|
-
|
403
|
-
private
|
404
|
-
|
405
|
-
|
406
|
-
|
407
|
-
def set_user
|
408
|
-
|
409
|
-
@user = User.find(params[:id])
|
410
|
-
|
411
|
-
end
|
412
|
-
|
413
|
-
|
414
|
-
|
415
|
-
def user_params
|
416
|
-
|
417
|
-
params.require(:user).permit(:name, :email, :password, :password_confirmation)
|
418
|
-
|
419
|
-
end
|
420
|
-
|
421
|
-
end
|
422
|
-
|
423
|
-
```
|
424
|
-
|
425
|
-
|
426
|
-
|
427
|
-
```route
|
428
|
-
|
429
|
-
Rails.application.routes.draw do
|
430
|
-
|
431
|
-
root 'home#index'
|
432
|
-
|
433
|
-
get '/signup', to: 'home#index'
|
434
|
-
|
435
|
-
get '/users', to: 'home#index'#暫定です
|
436
|
-
|
437
|
-
get '/users/1', to: 'home#index'#暫定です
|
438
|
-
|
439
|
-
namespace :api, {format: 'json'} do
|
440
|
-
|
441
|
-
namespace :v1 do
|
442
|
-
|
443
|
-
resources :users, only: [:index, :show, :create]
|
444
|
-
|
445
|
-
end
|
446
|
-
|
447
|
-
end
|
448
|
-
|
449
|
-
end
|
450
|
-
|
451
|
-
```
|