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

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

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

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

Ruby on Rails

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

HTML

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

CSS

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

Q&A

解決済

1回答

370閲覧

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/25 05:36

前提

railsで予定管理アプリを作成中です。

実現したいこと

今日の予定のみを取得し表示したいです。

発生している問題

今日の予定だけを表示しようとすると、今日以降の予定も表示されてしまいます。

該当のソースコード

app/controllers/blogs_controller.rb

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

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" %>

試したこと

コントローラーで今日の情報だけを取得しようと思いました。
おそらくここの記述が間違っているかと考えています。
分かる方いましたら教えていただきたいです。

def today @blogs = Blog.where("start_time >= ?", Date.today) end

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

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

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

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

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

guest

回答1

0

ベストアンサー

"start_time >= ?", Date.today ですと、今日より大なる ですから未来永劫分をとってしまいます。
賢いやりかたも有りますが、基本は
where( start_time: Time.current.beginning_of_day .. Time.current.end_of_day)
でしょうか。
Date は 時刻は扱わないので、、、、
使うなら
where( start_time: Date.today .. Date.tomorrow)
でいけるかな

投稿2022/08/25 07:20

winterboum

総合スコア23331

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

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

seiya0514

2022/08/25 07:33

解決できました!!! ありがとうございます!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問