質問編集履歴

3

情報の更新

2020/09/04 06:15

投稿

退会済みユーザー
test CHANGED
File without changes
test CHANGED
@@ -290,6 +290,98 @@
290
290
 
291
291
  ```
292
292
 
293
+
294
+
295
+ ####試したことの追記(2020/9/4)
296
+
297
+ - if @prject.save!(@prject.errors)により、User is invalid がエラー内容として出現していたことから、Validationが邪魔をしているため保存ができていないことを疑った
298
+
299
+ →UserモデルのValidationを一時的にコメントアウトした結果、意図したデータ保存がされた(プロジェクトと同時に中間テーブルのデータも保存)
300
+
301
+ →根本原因はValidationであることが判明した。しかし、ValidationはUser登録の時に必須でありコンフリクトが生じてしまった。
302
+
303
+ ```Ruby
304
+
305
+ class User < ApplicationRecord
306
+
307
+ # Include default devise modules. Others available are:
308
+
309
+ # :confirmable, :lockable, :timeoutable, :trackable and :omniauthable
310
+
311
+ devise :database_authenticatable, :registerable,
312
+
313
+ :recoverable, :rememberable, :validatable
314
+
315
+
316
+
317
+ # japanese_letters = /\A[ぁ-んァ-ン一-龥]+\z/
318
+
319
+ # with_options presence: true do
320
+
321
+ # validates :last_name, format: { with: japanese_letters, message: 'is not full-width characters' }
322
+
323
+ # validates :first_name, format: { with: japanese_letters, message: 'is not full-width characters' }
324
+
325
+ # validates :email, uniqueness: { case_sensitive: true },
326
+
327
+ # format: { with: /\w+([-+.]\w+)*@\w+([-.]\w+)*/ }
328
+
329
+ # validates :password, length: {minimum: 6 },
330
+
331
+ # format: { with: /\A(?=.*[A-Za-z])(?=.*\d)[A-Za-z\d]+\z/, message: 'includes both half-width letters and half-width numbers' }
332
+
333
+ # validates :company, :password_confirmation
334
+
335
+ # end
336
+
337
+
338
+
339
+ has_many :pro_users
340
+
341
+ has_many :projects, through: :pro_users
342
+
343
+ has_many :messages
344
+
345
+ end
346
+
347
+ ```
348
+
349
+ ターミナル
350
+
351
+ ```
352
+
353
+ Parameters: {"authenticity_token"=>"ZOq+q72nyTZK7+6DAc1vIWclC/OS2UauGGAJ+BjjsUWwAvB4k2NaFLNB4cO32JbjZhgFPDuk25B3SFQGCVGtdw==", "project"=>{"name"=>"お試し", "user_ids"=>["1", "2"]}, "commit"=>"Create Project"}
354
+
355
+ User Load (0.3ms) SELECT `users`.* FROM `users` WHERE `users`.`id` = 2 ORDER BY `users`.`id` ASC LIMIT 1
356
+
357
+ User Load (0.4ms) SELECT `users`.* FROM `users` WHERE `users`.`id` IN (1, 2)
358
+
359
+ ↳ app/controllers/projects_controller.rb:7:in `create'
360
+
361
+ (0.2ms) BEGIN
362
+
363
+ ↳ app/controllers/projects_controller.rb:8:in `create'
364
+
365
+ Project Create (0.9ms) INSERT INTO `projects` (`name`, `created_at`, `updated_at`) VALUES ('お試し', '2020-09-04 05:43:52.654047', '2020-09-04 05:43:52.654047')
366
+
367
+ ↳ app/controllers/projects_controller.rb:8:in `create'
368
+
369
+ ProUser Create (0.2ms) INSERT INTO `pro_users` (`user_id`, `project_id`, `created_at`, `updated_at`) VALUES (1, 4, '2020-09-04 05:43:52.657678', '2020-09-04 05:43:52.657678')
370
+
371
+ ↳ app/controllers/projects_controller.rb:8:in `create'
372
+
373
+ ProUser Create (0.2ms) INSERT INTO `pro_users` (`user_id`, `project_id`, `created_at`, `updated_at`) VALUES (2, 4, '2020-09-04 05:43:52.659268', '2020-09-04 05:43:52.659268')
374
+
375
+ ↳ app/controllers/projects_controller.rb:8:in `create'
376
+
377
+ (0.6ms) COMMIT
378
+
379
+ ```
380
+
381
+
382
+
383
+
384
+
293
385
  ### 補足情報(FW/ツールのバージョンなど)
294
386
 
295
387
 

2

ご助言の対応結果更新

2020/09/04 06:14

投稿

退会済みユーザー
test CHANGED
File without changes
test CHANGED
@@ -260,7 +260,35 @@
260
260
 
261
261
  ```
262
262
 
263
-
263
+ - user_idsという配列のパラメータが複数あることが原因と仮定
264
+
265
+ ビューファイルをい1行コメントアウトすることで、現在のユーザーidがパラメータに含まれないようにしてから実行
266
+
267
+ →試行前と同じエラーが出現したため配列内のパラメータ数は根本原因ではない可能性が高いことが推測された
268
+
269
+ ```ERB
270
+
271
+ <div class='project-form__field--right'>
272
+
273
+  <select name='project[user_ids][]'>
274
+
275
+   <option value=''>アサインメンバーを選択してください</option>
276
+
277
+   <% User.all.where.not(id: current_user.id). each do |user| %>
278
+
279
+    <option value=<%=user.id%>><%= user.last_name %><%= user.first_name %></option>
280
+
281
+   <% end %>
282
+
283
+  </select>
284
+
285
+ #以下の1行をコメントアウト
286
+
287
+  <input name='project[user_ids][]' type='hidden' value=<%=current_user.id>>
288
+
289
+ </div>
290
+
291
+ ```
264
292
 
265
293
  ### 補足情報(FW/ツールのバージョンなど)
266
294
 

1

問合せ箇所の強調

2020/09/03 13:42

投稿

退会済みユーザー
test CHANGED
File without changes
test CHANGED
@@ -204,7 +204,7 @@
204
204
 
205
205
 
206
206
 
207
- - ターミナルでのエラー原因探索
207
+ - ターミナルでのエラー原因探索(★情報追加依頼の方にお示しした箇所)
208
208
 
209
209
  [1][4][5]で示されている通り、user_idをもとにusersテーブルからデータの取得ができていないことが原因と考えられる
210
210