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

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

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

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

Haml

Haml(HTML abstraction markup language)は、HTML/XHTMLを効率的に記述するためのマークアップ言語および記法です。

Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

MySQL

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

Q&A

解決済

1回答

2025閲覧

投稿写真を一覧表示で新しい投稿順にしたい

MISIAN-MISIAN

総合スコア73

Ruby on Rails 5

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

Haml

Haml(HTML abstraction markup language)は、HTML/XHTMLを効率的に記述するためのマークアップ言語および記法です。

Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

MySQL

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

0グッド

0クリップ

投稿2020/01/24 01:50

編集2020/01/24 08:39

食事の写真を投稿するサイトを作っています。
そこで投稿した写真を一覧表示できるようにしています。

投稿時の特定の文字列を抜き取り種類別に表示させる色やsizeを変えています。

order(created_at:"desc")で新しい順に変えていますが、特定の文字列により種類別に表示させる場所を変えているので同じ種類の表示box内では順番は変わります。

全ての写真を投稿の新しい順に並び替えたいですがやり方がわかりません。
ご教授お願いします。

ファイル名posts_controller.rb class PostsController < ApplicationController def index @breakfast = Post.all.order(created_at:"desc").where(meals: "Breakfast") @lunch = Post.all.order(created_at:"desc").where(meals: "Lunch") @afternoonsnack = Post.all.order(created_at:"desc").where(meals: "Afternoon Snack") @dinner = Post.all.order(created_at:"desc").where(meals: "Dinner") @restaurant = Post.all.order(created_at:"desc").where(meals: "Favorite Restaurant") end def new @post = Post.new end def create @post = Post.new(post_params) if @post.save redirect_to root_path, notice: "出品完了やで!!!" else render :new, alert: '出品できませんでした' end end private def post_params params.require(:post).permit(:image, :meals, :description).merge(user_id: current_user.id) end end
ファイル名index.html.haml %section.item.item-l.item-breakfast %a{href: "#"} = image_tag "image_L_1.jpg",class:"image-L" .category Breakfast %p.description テキストテキストダミーテキストダミーテキスト - @breakfast.each do |breakfast| %section.item.item-breakfast %a{href: "#"} = image_tag "#{breakfast.image}", class:"image" .category Breakfast %p.description = breakfast.description - @lunch.each do |lunch| %section.item.item-lunch %a{href: "#"} = image_tag "#{lunch.image}", class:"image" .category Lunch %p.description = lunch.description - @afternoonsnack.each do |afternoonsnack| %section.item.item-m.item-afternoon-snack %a{href: "#"} = image_tag "#{afternoonsnack.image}",class:"image",style:"height:auto;" .category Afternoon Snack %p.description = afternoonsnack.description - @dinner.each do |dinner| %section.item.item-dinner %a{href: "#"} = image_tag "#{dinner.image}", class:"image" .category Dinner %p.description = dinner.description - @restaurant.each do |restaurant| %section.item.item-m.item-lunch %a{href: "#"} = image_tag "#{restaurant.image}",class:"image",style:"height:auto;" .category Favorite Restaurant %p.description = restaurant.description %script{src:"http://cdnjs.cloudflare.com/ajax/libs/masonry/3.3.0/masonry.pkgd.js"} :javascript window.onload = function(){ new Masonry('body',{ itemSelector: '.item', columnWidth: 180, gutter: 4 }); };

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

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

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

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

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

winterboum

2020/01/24 03:07

何が問題なのかわかりません。 今のprogramで例えば breakfast はその中で新しい物順になっていると思います。 そうなってくれない? それは望むものではない? 「全ての写真を投稿の新しい順に並び替えたい」というのが??? 種類別ではなく一緒くたにして新しい順?
MISIAN-MISIAN

2020/01/24 03:17

説明不足ですみません。 現在は種類別にimageの表示sizeやtextのcolorを変えています。 なので種類別に表示のboxが違います。 これを踏まえて、種類別ではなくて、全てのデータを一緒クタにして新しい順にしたいと考えています。 よろしくお願いします。
guest

回答1

0

ベストアンサー

はて、、、種類別ができる方がまとめてができないと言うのが不思議ですが

@posts = Post.all.order(created_at:"desc")

.all はなくても多分大丈夫です。

追記
それは View の作りがそうなっているからです。カテゴリ別に分けているからカテゴリないでは新しい物が最初に、全体では行ったり来たり。
全体を投稿の新しい順にするなら、viewもカテゴリ別にせず、
@posts = Post.all.order(created_at:"desc")
で全体をひとまとめにordrしたものを表示する必要があります。

投稿2020/01/24 03:27

編集2020/01/24 08:33
winterboum

総合スコア23329

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

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

MISIAN-MISIAN

2020/01/24 03:56

allは不要でしたありがとうございます each.do で表示DBからひっぱてきているので .item-breakfast .item-lunch の各BOX内では投稿順に表示されている状態です。 ``` - @breakfast.each do |breakfast| %section.item.item-breakfast %a{href: "#"} = image_tag "#{breakfast.image}", class:"image" .category Breakfast %p.description = breakfast.description - @lunch.each do |lunch| %section.item.item-lunch %a{href: "#"} = image_tag "#{lunch.image}", class:"image" .category Lunch %p.description = lunch.description ```
winterboum

2020/01/24 07:27

@breakfast = Post.all.order(created_at:"desc") であるのに - @breakfast.each do |breakfast| が 古いものから出てくる ということですか!!。 はて面妖な。。。 なぜだ?
MISIAN-MISIAN

2020/01/24 08:18 編集

- @breakfast.each do |breakfast| は新しい順に表示できています。 私の説明が下手で申し訳ありません。 質問フォーマットに写真と説明文追記しました ご確認ください。 お手数おかけして申し訳ありません。
MISIAN-MISIAN

2020/01/24 08:43 編集

回答ありがとうございます。 カテゴリー別に表示変えたくて このようなveiwにしていました。 ありがとうございます
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問