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

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

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

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

Ruby on Rails

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

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

CSS

CSSはXMLやHTMLで表現した色・レイアウト・フォントなどの要素を指示する仕様の1つです。

Q&A

解決済

1回答

788閲覧

Rails 予定管理アプリ 今日の予定だけを表示したい

seiya0514

総合スコア5

Ruby

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

Ruby on Rails

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

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

CSS

CSSはXMLやHTMLで表現した色・レイアウト・フォントなどの要素を指示する仕様の1つです。

0グッド

0クリップ

投稿2022/08/24 08:46

前提

Railsでシンプルカレンダーを用いた予定管理アプリを作成しています。

実現したいこと

登録した予定の中から、今日の予定だけを表示させたい。

発生している問題

今日の予定だけを表示させたいのですが、ユーザーの予定の全てが表示されてしまいます。
↓問題の画面
https://gyazo.com/f87f91e1ea523e8b2d369a91a637989c
↓ユーザーの予定一覧
https://gyazo.com/eb5f7c25eb9ce09d2557e8653a7c672b
↓データベース
https://gyazo.com/eab1c8a84523e6f6de3bd51051ebc158

該当のソースコード

app/controllers/blogs_controller.rb

1 2class BlogsController < ApplicationController 3 before_action :authenticate_user! 4 5 def index 6 @blogs = Blog.all 7 @blog = Blog.new 8 end 9 10 def new 11 @blog = Blog.new 12 end 13 14 def show 15 @blog = Blog.find(params[:id]) 16 end 17 18 def create 19 Blog.create(blog_parameter) 20 redirect_to blogs_path 21 end 22 23 def destroy 24 @blog = Blog.find(params[:id]) 25 @blog.destroy 26 redirect_to blogs_path, notice:"削除しました" 27 end 28 29 def edit 30 @blog = Blog.find(params[:id]) 31 end 32 33 def update 34 @blog = Blog.find(params[:id]) 35 if @blog.update(blog_parameter) 36 redirect_to blogs_path, notice: "編集しました" 37 else 38 render 'edit' 39 end 40 end 41 42 43 def today 44 @blogs = Blog.all 45 end 46 47 private 48 49 def blog_parameter 50 params.require(:blog).permit(:title, :content, :start_time).merge(user_id: current_user.id) 51 end 52end

app/views/blogs/today.html.erb

1 2<%= render "shared/header" %> 3 4<div class="today-task"><%= Date.current.strftime("%m月 %d日") %>の予定</div> 5 6<div class="today-blog"> 7 <% @blogs.each do |blog| %> 8 <% if current_user.id == blog.user_id %> 9 <tr class="today-plan"> 10 <td ><%= link_to blog.title , blog %></td> 11 <td><%= blog.start_time.strftime("%H時%M分") %></td> 12 </tr> 13 <% end %> 14 <% end %> 15</div> 16<%= link_to '戻る', blogs_path, class: "today-back" %> 17 18<%= render "shared/footer" %>

試したこと

if文にDate.today を加えると今日のデータだけを取り出せると思ったのですが、変わらず全ての予定が表示されてしまいました。

<% @blogs.each do |blog| %> <% if current_user.id == blog.user_id && Date.today %> <tr class="today-plan"> <td ><%= link_to blog.title , blog %></td> <td><%= blog.start_time.strftime("%H時%M分") %></td> </tr> <% end %> <% end %>

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

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

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

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

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

退会済みユーザー

退会済みユーザー

2022/08/24 08:59

今日の日付を取り出したところで、何と比較すのかというのを記載しないと意味がありません。 今日の日付と合致するblogを取りたいのであればblogに含まれる日付情報を用いたらどうでしょうか
guest

回答1

0

ベストアンサー

controller で @blogs = Blog.all とし view で選り分けているのは 良くないです。
Blogが100とかでしたらまぁなんとか、ですが 1000とか10000とかになったらDBに負担かかるし、Railsのメモリーも圧迫するし、遅くなるし
そのうち止まります。
@blogs = Blog.where(ユーザで絞り込む).where(日付で絞り込む)
と 表示するものだけとりだして、Viewでは全部表示するようにしましょう

投稿2022/08/24 13:33

winterboum

総合スコア23284

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

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

winterboum

2022/08/25 07:10

where(日付で絞り込む) ここできました?
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問