この記事を書くことにした理由
これから何度もポートフォリオ制作にて使う気がしたので、今後のために書き残そうとした。
やり方
最初は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とかは好きなようにレイアウトすれば完成