0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

【Rails】Todoリスト カードの移動実装

Posted at

###はじめに
Todoリストアプリを作成するにあたって、カードの移動を実装してみたので
備忘録として記事を書く。

使用環境

Rails 6.0.4'

カードの移動って?

スクリーンショット 2021-08-03 12.02.47.png
スクリーンショット 2021-08-03 12.03.12.png
スクリーンショット 2021-08-03 12.03.30.png

リストBOXをいじってカードを移動してあげる。この実装をやろうと思います。

やり方

app/controllers/card_controller.rb

  def edit
    # ここに追加
    @lists = List.where(user: current_user)
  end

editアクションに Listモデルからuser_idがcurretn_user.idと一致するレコードの情報を取得するというコード
記載する。

app/views/card/edit.html.erb

<div class="cardeditPgae">
  <div class='container'>
    <%= form_with model: @card, url: { action: :update }, html: { class: 'cardeditForm' }, local: true do |f| %>
      <% if @card.errors.any? %>
        <p class="text-danger">タイトルは1~255文字以内で入力してください</p>
      <% end %>
      <div class="cardeditForm_title">
        <%= f.label :title %>
        <%= f.text_field :title, class: "form-control", placeholder: "カード名" %>
      </div>
      <div class="cardeditForm_memo">
        <%= f.label :memo %>
        <%= f.text_area :memo, class: "form-control", placeholder: "詳細" %>
      </div>

      <%# ==========ここから追加する========== %>
      <div class="cardeditForm_memo">
        <label>リスト名</label>
        <%= select :card, :list_id, @lists.map{ |l| [l.title, l.id] }, {}, { class: 'form-control' } %>
      </div>
      <%# =========ここまで========== %>


      <div class="text-center"><%= f.submit "更新する", class: "submitBtn" %></div>
    <% end %>
  </div>
</div>

重要なのはこのコード

  <%= select :card, :list_id, @lists.map{ |l| [l.title, l.id] }, {}, { class: 'form-control' } %>

では説明してきます。

select プロパティ名, タグの情報, {オプション}, {HTMLオプション}

それぞれが表しているもの

- プロパティ名 : カラム名 (下記に補足あり)
- タグの情報 : セレクトボックス表示に使うデータの配列 or ハッシュ
- オプション : セレクトボックスのオプション(include_blank, selectedなど)
- HTMLオプション : HTMLのオプション (id, classなど)

これでリスト名を変更したら、カードのリストが移動できるはずです。

備忘録終了

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?