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

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

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

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

Ruby

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

HTML5

HTML5 (Hyper Text Markup Language、バージョン 5)は、マークアップ言語であるHTMLの第5版です。

SQLite

SQLiteはリレーショナルデータベース管理システムの1つで、サーバーではなくライブラリとして使用されている。

解決済

Ruby on Rails 登録した年月日を取得し、ビューに描画させたい

bumpfuji10
bumpfuji10

総合スコア5

Ruby on Rails 5

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

Ruby

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

HTML5

HTML5 (Hyper Text Markup Language、バージョン 5)は、マークアップ言語であるHTMLの第5版です。

SQLite

SQLiteはリレーショナルデータベース管理システムの1つで、サーバーではなくライブラリとして使用されている。

1回答

0評価

0クリップ

130閲覧

投稿2022/01/20 11:26

編集2022/01/24 18:18

実現したいこと

現在Ruby on Railsにおいて、「買いたい物を、金額及び買うタイミングを連携して記録できる」という簡単なメモアプリケーションのようなものを作成しております。

簡単に機能を説明すると
①フォームにて買いたいもの・金額・買うタイミングを入力。
②買いたいもの一覧にて、上記の一覧と、合計金額を描画する。
③登録した日付を年・月・日で期間を絞ることで、年間・月間・日間の買いたいもの一覧・合計金額を描画する。

という内容となっております。

実現したいこととしては、③の期間を絞って買いたいもの一覧を描画させたいのですが
https://teratail.com/questions/p8z87f41lmjui1
上記URLの質問にて、コントローラー内の記述を

month = Time.new(2020,1,1) # としておいて Item.where(created_at: month.beginning_of_month..month.end_of_month)

にするといった回答をwinterboum様から頂いておりましたが(winterboum様ありがとうございました)、
いざ記述というところで期待していた結果とはならなかったため、再度皆様のお力をお借りしたく質問致します。

コード

登録フォーム

rb

<<-------->> <div class="new_form"> <%= form_with(model: @item, local: true) do |f| %> <%= f.label :name, '欲しいもの' %> <%= f.text_field :name %> </div> <div> <%= f.label :price, '金額(半角で入れてね!)' %> <%= f.text_field :price %> </div> <div class=“buy_month”> <%= f.label :買うタイミング %> <%= f.date_select :buy_month, { use_month_numbers: true, start_year: (Time.now.year), end_year: 2030, date_separator: '/' } %> </div> <%= f.submit "欲しい!", class: "btn btn-primary" %> <%= link_to "BUTSUYOKU一覧", '/items/index' %> <% end %> </div>

コントローラー

rb

class ItemsController < ApplicationController def new @item = Item.new end def show @item = Item.find(params[:id]) end def index @items = Item.all @ItemsAllSum = Item.all.sum(:price) end def create @item = Item.new(item_params) if @item.save flash[:success] = "欲しがりさんめ!" redirect_to '/items/index' else flash[:danger] = "何ゆーてますの?" render 'new' end end def destroy @item = Item.find(params[:id]) @item.destroy redirect_to '/items/index' end def search_date search_date = Time.new(2022, 1, 1) end def month month = Item.where(buy_month: search_date.beginning_of_month..search_date.end_of_month) end helper_method :search_date, :month private def item_params params.require(:item).permit(:name, :price, :buy_month) end end # 編集しました。(2022/1/24)

一覧ページ

rb

<ul> <% @items.each do |item| %> <li>欲しいもの : <%= item.name %></li> 金額 : <%= item.price %>円 <%= item.buy_month %>に買います <%= link_to "削除", '/items/' + item.id.to_s, method: :delete %> <% end %> </ul> <div class=“index”> <p>君の物欲合計金額は...<%= @ItemsAllSum %>円</p> <p><%= link_to "まだ何か欲しいの?", '/' %><p> </div> <%= "1月に買うものは..." %> <% month.each do |month| %> <%= "#{month.name}" %> <% end %> # 編集しました。(2022/1/24)

しかし<%= month.name %>の結果は 「Item」とだけ返ってきます。
ここではnewフォームで登録している欲しいものの名前が返ってくることを期待しておりました。
なぜこのような結果になったのか皆目検討もつきません。
ダラダラと長い質問となってしまいました。
どなたかアドバイスを頂けないでしょうか?
何卒よろしくお願い申し上げます。

良い質問の評価を上げる

以下のような質問は評価を上げましょう

  • 質問内容が明確
  • 自分も答えを知りたい
  • 質問者以外のユーザにも役立つ

評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

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

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

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

teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

  • プログラミングに関係のない質問
  • やってほしいことだけを記載した丸投げの質問
  • 問題・課題が含まれていない質問
  • 意図的に内容が抹消された質問
  • 過去に投稿した質問と同じ内容の質問
  • 広告と受け取られるような投稿

評価を下げると、トップページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

まだ回答がついていません

会員登録して回答してみよう

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

ただいまの回答率
87.20%

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

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

質問する

関連した質問

同じタグがついた質問を見る

Ruby on Rails 5

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

Ruby

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

HTML5

HTML5 (Hyper Text Markup Language、バージョン 5)は、マークアップ言語であるHTMLの第5版です。

SQLite

SQLiteはリレーショナルデータベース管理システムの1つで、サーバーではなくライブラリとして使用されている。