□ こういう↓ 「リスト>todoカード」のデータが表示されるアプリをRailsで作っているのですが
↓理想のイメージ↓
- 月/日ごとに、コンテンツがまとまっていて、並んでいる
やりたいこと
● created_atの日付ごとに、セクションを分けて表示したい
↓
ー9/1 の 「リスト>todoカード」一覧
ー9/2 の ・・・・
という風にしていきたい
試したこと
- groupを使い、date(created_at)にすれば日付ごとにグルーピングされるかと思ったがされなかった
- かつ表示も**「最新の1件」になってしまった**
やり方が間違っていると思うのですが、ご教授いただけたらと思います・・・・????
コード
・1. kanbanを表示している views/top/index.html.erb
・2. top_controller
・3. 今入力しているデータ(9/7のものと、8/24のものがある。これらを一覧で、日付ごとにグループ化して表示したい)
html
1<div class="topPage"> 2 3 <div class="listWrapper"> 4 <% @lists.each do |list| %> 5 <div class="list"> 6 <div class="list_header"> 7 <h2 class="list_header_title"><%= list.title %></h2> 8 </div> 9 10 <div class="cardWrapper"> 11 <% list.cards.each do |card| %> 12 <div class="card"> 13 <h3 class="card_title"><%= card.title %></h3> 14 <div class="addCard"> 15 <i class="far fa-plus-square"></i> 16 <%= link_to "アイテムを追加", new_list_card_path(list), class: "itemAdd" %> 17 </div> 18 </div> 19 20 21 22 <%end%> 23 24 <div class="addCard"> 25 <i class="far fa-plus-square"></i> 26 <%= link_to "さらにカードを追加", new_list_card_path(list), class: "addCard_link" %> 27 </div> 28 </div> 29 30 </div> 31 <% end %> 32 </div> 33 34 35</div>
rb
1class TopController < ApplicationController 2 def index 3 @lists = List.where(user: current_user).order("created_at ASC").group("date(created_at)") 4 end 5end 6 7
sql
1sqlite> select * from Lists 2 ...> ; 31|第1優先TODO|1|2019-08-24 06:34:36.423364|2019-08-24 06:34:36.423364 42|第1優先TODO|1|2019-08-24 06:35:23.580541|2019-08-24 06:35:23.580541 53|da2|1|2019-08-24 06:36:01.976279|2019-08-24 06:36:01.976279 64|lll|2|2019-09-07 07:13:13.366874|2019-09-07 07:13:13.366874 75|9月7日 : 2つめのリスト|2|2019-09-07 07:14:20.287058|2019-09-07 07:14:20.287058 86|9/7 -no2|2|2019-09-07 08:41:49.370980|2019-09-07 08:41:49.370980
↓ create_users.rb
rb
1# frozen_string_literal: true 2 3class DeviseCreateUsers < ActiveRecord::Migration[5.2] 4 def change 5 create_table :users do |t| 6 ## Database authenticatable 7 t.string :email, null: false, default: "" 8 t.string :encrypted_password, null: false, default: "" 9 10 ## Recoverable 11 t.string :reset_password_token 12 t.datetime :reset_password_sent_at 13 14 ## Rememberable 15 t.datetime :remember_created_at 16 17 ## Trackable 18 # t.integer :sign_in_count, default: 0, null: false 19 # t.datetime :current_sign_in_at 20 # t.datetime :last_sign_in_at 21 # t.string :current_sign_in_ip 22 # t.string :last_sign_in_ip 23 24 ## Confirmable 25 # t.string :confirmation_token 26 # t.datetime :confirmed_at 27 # t.datetime :confirmation_sent_at 28 # t.string :unconfirmed_email # Only if using reconfirmable 29 30 ## Lockable 31 # t.integer :failed_attempts, default: 0, null: false # Only if lock strategy is :failed_attempts 32 # t.string :unlock_token # Only if unlock strategy is :email or :both 33 # t.datetime :locked_at 34 35 36 t.timestamps null: false 37 end 38 39 add_index :users, :email, unique: true 40 add_index :users, :reset_password_token, unique: true 41 # add_index :users, :confirmation_token, unique: true 42 # add_index :users, :unlock_token, unique: true 43 end 44end 45
↓ create_lists.rb
rb
1class CreateLists < ActiveRecord::Migration[5.2] 2 def change 3 create_table :lists do |t| 4 5 t.string :title, null: false, limit: 255 6 t.references :user, null: false 7 8 t.timestamps 9 end 10 end 11end
↓ create_cards.rb
class
1 def change 2 create_table :cards do |t| 3 4 t.string :title, null: false 5 t.references :list, null: false 6 7 t.timestamps 8 end 9 end 10end 11
回答1件
あなたの回答
tips
プレビュー