初期化という言葉が正しいかは分かりませんが質問させていただきます。
端的に質問を書きますと、とあるテーブルに対してdeleteメソッドを行うとデータは削除されるのですが、新たにcreateメソッド等でテーブルにデータを書き込んでもidが1からにならないということです。
以下のようにrakefile内でTable_dataというテーブル(モデルクラス)へ、class_mateというクラス生徒の名前と出席番号が入ったデータ(配列)からcreateメソッドでデータを渡してレコードの中にデータを入れてあげ、rake taskを実行するとします。
task :create_data => :environment do ・ ・ ・ class_mate.each do |detail| data= Table_data.create(name:detail['name'], number:detail['number']) data.save end end
そうするとテーブルの中身は
id name number
1 田中 14
2 佐藤 15
3 藤田 16
と、なると思います。
このテーブルに対して別のタスクでテーブルの中身を全て削除します
task :delete_data => :environment do Table_data.delete_all end
その後もう一度```task: create_data
id name number 4 田中 14 5 佐藤 15 6 藤田 16 と主キーのidが初期化されず前のデータが残っているような形でテーブルに保存されます。 何故、このようなことが起こるのでしょうか?データベースの勉強をしっかりとしたことがないため困っております。 また僕はこのような形でAPIにリクエストし、返ってきたデータを保存→データをviewで表示→全削除→保存 →表示 というのをtaskを定期実行するライブラリと組み合わせて行おうと思っているのですが、何か設計としてまずい点はございますでしょうか?長くなりましたが宜しくお願い致します
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/08/15 23:24
2018/08/16 00:02
2018/08/16 00:38