質問編集履歴
3
ソースコードを修正致しました。
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
エラーメッセージ・ソースコードを追記致しました。
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
ソースコードを修正致しました。
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
|
### 試したこと
|