質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
Ruby on Rails 6

Ruby on Rails 6は、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

Q&A

解決済

1回答

884閲覧

Rails6 投稿順・評価順に並べ変わらない

yuya555555

総合スコア64

Ruby on Rails 6

Ruby on Rails 6は、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

1グッド

1クリップ

投稿2022/06/07 11:00

現状

投稿したものを評価・投稿順に並べ替えたいのですが、うまくいきません。

やったこと

モデル、コントローラー、ビューそれぞれに以下の記述をしました。

モデル

rails

1 scope :latest, -> {order(created_at: :desc)} 2 scope :old, -> {order(created_at: :asc)} 3 scope :rating, -> {order(star: :desc)} 4 scope :rating_bad, -> {order(star: :asc)}

コントローラー

rails

1def index 2 if params[:latest] 3 @books = Book.latest 4 elsif params[:old] 5 @books = Book.old 6 elsif params[:rating] 7 @books = Book.rating 8 elsif params[:rating_bad] 9 @books = Book.rating_bad 10 else 11 @books = Book.all 12 end

ビュー

rails

1 <p> 2 <%= link_to "新しい順", books_path(latest: "true"), class: "btn btn-success" %> 3 | <%= link_to "古い順", books_path(old: "true"), class: "btn btn-info" %> 4 | <%= link_to "評価の高い順", books_path(rating: "true"), class: "btn btn-dark" %> 5 | <%= link_to "評価の悪い順", books_path(rating_bad: "true"), class: "btn btn-warning" %> 6 </p>

なぜ表示が変わらないか??

細かなところやターミナルも見ましたが、間違っているところが見つけられません。
そもそもまだ記述することがあるのでしょうか、、、
また、サーバーの再起動は実施済みです。
分かる方いらっしゃいましたら、ご教授いただければ幸いです。

u.yusuke22👍を押しています

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

maisumakun

2022/06/07 11:06

> うまくいきません。 何をどのように確認しましたか?
yuya555555

2022/06/07 11:25

知識0から学習のために作成しています。 そのため、この機能を実装するにあたり様々な記事を参考にさせていただき実装しました。 他にも方法があるようですが、今回はscopeとorderを使って実装しています。 その中で、自分の知識と調べた上で記述したコードの間違いが不明であるため質問させていただいております。
maisumakun

2022/06/07 11:28

> 自分の知識と調べた上で記述したコードの間違いが不明であるため 何がどのような結果を返しているのを見て、「間違っている」と判断しましたか?
yuya555555

2022/06/07 11:41

「間違い」といった言い方は不適切かもしれませんね、、、 参考にさせていただいたコードを記述した結果、本来作動する機能が作動しないため、私のコードのどこかに不具合があると判断しました。(参考にして書いたコードは間違っていないかもしれません→関連しうるコードは載せるべきですね) 私が知りえる範囲では、ターミナルにもコンソールにも機能が動かない原因は見られませんでした。
maisumakun

2022/06/07 11:47

一覧を表示するコードはどのように書いていますか?
yuya555555

2022/06/07 11:50

こちらが投稿一覧のコードです。 <p id="notice"></p> <div class="container px-5 px-sm-0"> <div class="row"> <%= render "users/user", user: @user, book: @book %> <div class="col-md-8 offset-md-1"> <h2>Books</h2> <p> <%= link_to "新しい順", books_path(latest: "true"), class: "btn btn-success" %> | <%= link_to "古い順", books_path(old: "true"), class: "btn btn-info" %> | <%= link_to "評価の高い順", books_path(rating: "true"), class: "btn btn-dark" %> | <%= link_to "評価の悪い順", books_path(rating_bad: "true"), class: "btn btn-warning" %> </p> <table class="table table-hover table-inverse"> <thred> <tr> <th></th> <th>Title</th> <th>Opinion</th> <th colspan="3"></th> </tr> </thred> <tbody> <% @books.each do |book| %> <tr> <td><%= link_to image_tag(book.user.get_profile_image(100,100)), user_path(book.user) %></td> <td><%= link_to book.title, book_path(book.id) %></td> <td><%= book.body %></td> <td> <div class="star-group"> <div class="detail-rating", id="book-rat-<%= book.id %>"></div> <div class="eval-star"><%= book.star %>/5点</div> <%= render "raty2", book: book %> </div> </td> </tr> <% end %> </tbody> </table> </div> </div> </div>
guest

回答1

0

自己解決

indexアクションにて記載したif文が、if文のend下に記載したbook.allによって
情報がリセットされており、表示されませんでした。

投稿2022/06/08 12:12

yuya555555

総合スコア64

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問