LoginSignup
0
0

Rails ToDoアプリにて 完了機能追加した

Posted at

この記事を書くことにした理由

これから何度もポートフォリオ制作にて使う気がしたので、今後のために書き残そうとした。

やり方

最初はmigrateの作成or追加から

$rails g migration テーブル名(例 CreateToDos)

テーブルも新しく作る場合

テーブル名(例 日時_create_to_dos.rb)
class テーブル名( 日時_create_to_dos.rb < ActiveRecord::Migration[7.0]
    def change
    create_table :テーブル名( to_dos) do |t|
        t.追加したい型(例 string :カラム名( text)
        t.boolomen :done(一例)
        
        t.timestamps
    end
  end
end

既存のテーブルに追加する場合

テーブル名(例 日時_create_to_dos.rb)
class テーブル名( 日時_create_to_dos.rb < ActiveRecord::Migration[7.0]
    def change
        add_column :既存のテーブル名( to_dos), :done, :boolean
    end
  end
end

どっちか入力したら、rails db:migrateを忘れずに

次にrootとcontroller

rootから
routes.rb
 post '/tasks/:id/done' => 'tasks#done', as: 'done'

controller

tasks_controller.rb
def index
    @todo = ToDo.where(user_id: session[:user_id])
end

def done
    @todo = ToDo.find(params[:id])
    if @todo.done
      @todo.update(done: false)
      redirect_to tasks_path
    else
      @todo.update(done: true)
      redirect_to tasks_path
    end
end

最後にボタンを追加する

index.html.erb
<% @todo.each do |todo| %>
<%= button_to '完了', done_path(todo.id),  date:{"turbo-method": :post} %>
<% end %>

cssとかは好きなようにレイアウトすれば完成

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