質問編集履歴

1

修正

2020/11/04 00:14

投稿

kema
kema

スコア6

test CHANGED
File without changes
test CHANGED
@@ -402,112 +402,112 @@
402
402
 
403
403
  <span class="badge badge-pill badge-info m-1 p-2">
404
404
 
405
+ <%= link_to tag.name, posts_path(tag_name: tag.name)%>
406
+
407
+ </span>
408
+
409
+ <% end %>
410
+
411
+
412
+
413
+ <a href="#" class="card-link">Card link</a>
414
+
415
+ <a href="#" class="card-link">Another link</a>
416
+
417
+ </div>
418
+
419
+ </div>
420
+
421
+ </div>
422
+
423
+ </div>
424
+
425
+ <%= paginate @posts %>
426
+
427
+ <div class="container" style="margin-bottom:100px;">
428
+
429
+ ```
430
+
431
+ views/posts/_tag_list.html.erb
432
+
433
+ ```
434
+
435
+ <% tag_list.each do |tag| %>
436
+
437
+ <span class="badge badge-pill badge-info mr-1 p-2">
438
+
439
+ <%= link_to tag, posts_path(tag_name: tag), class: "text-white" %>
440
+
441
+ </span>
442
+
443
+ <% end %>
444
+
445
+ ```
446
+
447
+ ### 試したこと
448
+
449
+ トップページのタグ一覧をクリックしてリンク先に飛ぶときのURLは
450
+
451
+ 「http://localhost:3000/posts?tag_name=4」
452
+
453
+ でタグが数字で表示されているのですが、絞り込みが正常にできているタグのリンク先のURLは「http://localhost:3000/posts?tag_name=猫」となっておりデータ・ベースに保存されているデータの呼び出し方が違うというのは分かりました。そこでposts_controller.rbのindexを
454
+
455
+ ```
456
+
457
+ @tags = Post.tag_counts_on(:tags).order('count DESC')
458
+
459
+ ```
460
+
461
+ の部分を
462
+
463
+ ```
464
+
465
+ @tags = Post.tag_list_on(:tags).order('count DESC')
466
+
467
+
468
+
469
+ ```
470
+
471
+ に変更して試してみたのですがundefined method `tag_list_on' for #<Class:0x00007fe8f28dc3a8>というエラーが出ました。
472
+
473
+
474
+
475
+ 後は同じ箇所のインスタンス変数を変えてみたりしたのですが
476
+
477
+
478
+
479
+ 変更前
480
+
481
+ ```
482
+
483
+ <% @tags.each do |tag| %>
484
+
485
+ <span class="badge badge-pill badge-info m-1 p-2">
486
+
405
487
  <%= link_to tag.name, posts_path(tag: tag.name)%>
406
488
 
407
489
  </span>
408
490
 
409
491
  <% end %>
410
492
 
411
-
412
-
413
- <a href="#" class="card-link">Card link</a>
414
-
415
- <a href="#" class="card-link">Another link</a>
416
-
417
- </div>
418
-
419
- </div>
420
-
421
- </div>
422
-
423
- </div>
424
-
425
- <%= paginate @posts %>
426
-
427
- <div class="container" style="margin-bottom:100px;">
428
-
429
- ```
493
+ ```
430
-
494
+
431
- views/posts/_tag_list.html.erb
495
+ 変更後
432
-
496
+
433
- ```
497
+ ```
434
-
498
+
435
- <% tag_list.each do |tag| %>
499
+ <% @posts.each do |post| %>
436
-
500
+
437
- <span class="badge badge-pill badge-info mr-1 p-2">
501
+ <span class="badge badge-pill badge-info m-1 p-2">
438
-
502
+
439
- <%= link_to tag, posts_path(tag_name: tag), class: "text-white" %>
503
+ <%= link_to tag, posts_path(tag: tag.name)%>
440
-
504
+
441
- </span>
505
+ </span>
442
506
 
443
507
  <% end %>
444
508
 
445
509
  ```
446
510
 
447
- ### 試したこと
448
-
449
- トップページのタグ一覧をクリックしてリンク先に飛ぶときのURLは
450
-
451
- 「http://localhost:3000/posts?tag_name=4」
452
-
453
- でタグが数字で表示されているのですが、絞り込みが正常にできているタグのリンク先のURLは「http://localhost:3000/posts?tag_name=猫」となっておりデータ・ベースに保存されているデータの呼び出し方が違うというのは分かりました。そこでposts_controller.rbのindexを
454
-
455
- ```
456
-
457
- @tags = Post.tag_counts_on(:tags).order('count DESC')
458
-
459
- ```
460
-
461
- の部分を
462
-
463
- ```
464
-
465
- @tags = Post.tag_list_on(:tags).order('count DESC')
466
-
467
-
468
-
469
- ```
470
-
471
- に変更して試してみたのですがundefined method `tag_list_on' for #<Class:0x00007fe8f28dc3a8>というエラーが出ました。
472
-
473
-
474
-
475
- 後は同じ箇所のインスタンス変数を変えてみたりしたのですが
476
-
477
-
478
-
479
- 変更前
480
-
481
- ```
482
-
483
- <% @tags.each do |tag| %>
484
-
485
- <span class="badge badge-pill badge-info m-1 p-2">
486
-
487
- <%= link_to tag.name, posts_path(tag: tag.name)%>
488
-
489
- </span>
490
-
491
- <% end %>
492
-
493
- ```
494
-
495
- 変更後
496
-
497
- ```
498
-
499
- <% @posts.each do |post| %>
500
-
501
- <span class="badge badge-pill badge-info m-1 p-2">
502
-
503
- <%= link_to tag, posts_path(tag: tag.name)%>
504
-
505
- </span>
506
-
507
- <% end %>
508
-
509
- ```
510
-
511
511
  undefined method `name' for #<Post:0x00007fe90237fb98>というエラーが出ます。
512
512
 
513
513