質問編集履歴

3

ソースコードを修正致しました。

2021/01/12 14:19

投稿

Tarzan3154
Tarzan3154

スコア7

test CHANGED
File without changes
test CHANGED
@@ -368,7 +368,13 @@
368
368
 
369
369
  </aside>
370
370
 
371
+ <aside class="col-sm-12">
372
+
373
+ <%= link_to '新規スキル投稿', new_skill_path(current_user.id) %>
374
+
371
- <%= render "skills/skills",skills:@skills %>
375
+ <%= render "skills/skills",skills:@skills %>
376
+
377
+ </aside>
372
378
 
373
379
  </div>
374
380
 

2

エラーメッセージ・ソースコードを追記致しました。

2021/01/12 14:19

投稿

Tarzan3154
Tarzan3154

スコア7

test CHANGED
File without changes
test CHANGED
@@ -18,6 +18,26 @@
18
18
 
19
19
  ![イメージ説明](6e0a1a9673adc6d9e07cc2c932912c5f.png)
20
20
 
21
+
22
+
23
+ ```
24
+
25
+ ActiveRecord::RecordNotFound in SkillsController#new
26
+
27
+ Couldn't find Skill without an ID
28
+
29
+ def new
30
+
31
+ @skill = Skill.find(params[:id])
32
+
33
+ end
34
+
35
+
36
+
37
+ def create
38
+
39
+ ```
40
+
21
41
 
22
42
 
23
43
  ### 該当のソースコード
@@ -68,7 +88,7 @@
68
88
 
69
89
  before_action :correct_user, only: [:edit]
70
90
 
71
-
91
+
72
92
 
73
93
  def index
74
94
 
@@ -92,6 +112,8 @@
92
112
 
93
113
  @user = User.new
94
114
 
115
+ @user.skills.build
116
+
95
117
  end
96
118
 
97
119
 
@@ -100,6 +122,8 @@
100
122
 
101
123
  @user = User.new(user_params)
102
124
 
125
+ user.save
126
+
103
127
 
104
128
 
105
129
  if @user.save
@@ -126,13 +150,13 @@
126
150
 
127
151
  end
128
152
 
129
-
153
+
130
154
 
131
155
  def update
132
156
 
133
157
  @user = User.find(params[:id])
134
158
 
135
-
159
+
136
160
 
137
161
  if @user.update(user_params)
138
162
 
@@ -150,7 +174,7 @@
150
174
 
151
175
  end
152
176
 
153
-
177
+
154
178
 
155
179
  private
156
180
 
@@ -162,7 +186,7 @@
162
186
 
163
187
  end
164
188
 
165
-
189
+
166
190
 
167
191
  def correct_user
168
192
 
@@ -186,6 +210,14 @@
186
210
 
187
211
 
188
212
 
213
+ def new
214
+
215
+ @skill = Skill.find(params[:id])
216
+
217
+ end
218
+
219
+
220
+
189
221
  def create
190
222
 
191
223
  @skills = current_user.skills.build(skill_params)
@@ -344,6 +376,44 @@
344
376
 
345
377
  ```
346
378
 
379
+ skills/new.html.erb
380
+
381
+
382
+
383
+ <%= form_with(model: @skill, local: true) do |f| %>
384
+
385
+ <%= render 'layouts/error_messages', model: f.object %>
386
+
387
+
388
+
389
+ <div class="form-group">
390
+
391
+ <%= f.label :title, 'Skill Title' %>
392
+
393
+ <%= f.text_field :title, class: 'form-control' %>
394
+
395
+ </div>
396
+
397
+
398
+
399
+ <div class="form-group">
400
+
401
+ <%= f.label :description, 'Skill Descriotion' %>
402
+
403
+ <%= f.text_field :description, class: 'form-control' %>
404
+
405
+ </div>
406
+
407
+
408
+
409
+ <%= f.submit '更新', class: 'btn btn-primary btn-block' %>
410
+
411
+ <% end %>
412
+
413
+ ```
414
+
415
+ ```
416
+
347
417
  users/edit.html.erb
348
418
 
349
419
 
@@ -528,6 +598,8 @@
528
598
 
529
599
  has_many :skills
530
600
 
601
+ accepts_nested_attributes_for :skills, allow_destroy: true
602
+
531
603
  has_many :likes
532
604
 
533
605
  has_many :like_posts, through: :likes, source: :post

1

ソースコードを修正致しました。

2021/01/12 14:16

投稿

Tarzan3154
Tarzan3154

スコア7

test CHANGED
File without changes
test CHANGED
@@ -494,6 +494,94 @@
494
494
 
495
495
  ```
496
496
 
497
+ ```
498
+
499
+ user.rb
500
+
501
+
502
+
503
+ class User < ApplicationRecord
504
+
505
+ validates :name, presence: true, length: { maximum: 50 }
506
+
507
+ validates :email, presence: true, length: { maximum: 255 },
508
+
509
+ format: { with: /\A[\w+\-.]+@[a-z\d\-.]+.[a-z]+\z/i },
510
+
511
+ uniqueness: { case_sensitive: false }
512
+
513
+ validates :password, allow_blank: true, length: { maximum: 20 }
514
+
515
+ validates :profession, allow_blank: true, length: { maximum: 20 }
516
+
517
+ validates :first_name, allow_blank: true, length: { maximum: 10 }
518
+
519
+ validates :last_name, allow_blank: true, length: { maximum: 10 }
520
+
521
+ validates :profile, allow_blank: true, length: { maximum: 200 }
522
+
523
+ has_secure_password
524
+
525
+
526
+
527
+ has_many :posts
528
+
529
+ has_many :skills
530
+
531
+ has_many :likes
532
+
533
+ has_many :like_posts, through: :likes, source: :post
534
+
535
+
536
+
537
+ def like(post)
538
+
539
+ self.likes.find_or_create_by(post_id: post.id)
540
+
541
+ end
542
+
543
+
544
+
545
+ def unlike(post)
546
+
547
+ like = self.likes.find_by(post_id: post.id)
548
+
549
+ like.destroy if like
550
+
551
+ end
552
+
553
+
554
+
555
+ def likes?(post)
556
+
557
+ self.like_posts.include?(post)
558
+
559
+ end
560
+
561
+ end
562
+
563
+ ```
564
+
565
+ ```
566
+
567
+ skill.rb
568
+
569
+
570
+
571
+ class Skill < ApplicationRecord
572
+
573
+ belongs_to :user
574
+
575
+
576
+
577
+ validates :title, length: { maximum: 10 }
578
+
579
+ validates :description, length: { maximum: 150 }
580
+
581
+ end
582
+
583
+ ```
584
+
497
585
 
498
586
 
499
587
  ### 試したこと