【Ruby on Rails】rails consoleをサンドバッグモードで起動する
サンドボックスモードで起動する。
このモードで起動するとコンソール自体が一つのトランザクションになるので色々便利
コンソール終了時にデータベースに関する変更をロールバックすることが可能に。
sandboxオプションをつけて起動する方法は以下のコマンド
rals c --sandbox(もしくは--s)
やってみます。
hodzumitakanori-no-MacBook-Air:sample_app hodzumitakanori$ rails c --sandbox Running via Spring preloader in process 5428 Loading development environment in sandbox (Rails 5.1.2) Any modifications you make will be rolled back on exit irb(main):001:0>
Any modifications you make will be rolled back on exit
(あなたが行った変更は、終了時にロールバックされます)
とメッセージが出ています。
hodzumitakanori-no-MacBook-Air:sample_app hodzumitakanori$ rails c -s Running via Spring preloader in process 5545 Loading development environment in sandbox (Rails 5.1.2) Any modifications you make will be rolled back on exit Cannot read termcap database; using dumb terminal settings. irb(main):001:0> User.create(name: "Hozumi", email: "hozu@mail") (0.1ms) SAVEPOINT active_record_1 SQL (0.5ms) INSERT INTO "users" ("name", "email", "created_at", "updated_at") VALUES (?, ?, ?, ?) [["name", "Hozumi"], ["email", "hozu@mail"], ["created_at", "2018-01-13 01:30:04.398166"], ["updated_at", "2018-01-13 01:30:04.398166"]] (0.1ms) RELEASE SAVEPOINT active_record_1 => #<User id: 2, name: "Hozumi", email: "hozu@mail", created_at: "2018-01-13 01:30:04", updated_at: "2018-01-13 01:30:04"> irb(main):002:0> User.all User Load (0.3ms) SELECT "users".* FROM "users" LIMIT ? [["LIMIT", 11]] => #<ActiveRecord::Relation [#<User id: 1, name: "Hozumi", email: "hozu@mail", created_at: "2018-01-13 01:27:21", updated_at: "2018-01-13 01:27:21">, #<User id: 2, name: "Hozumi", email: "hozu@mail", created_at: "2018-01-13 01:30:04", updated_at: "2018-01-13 01:30:04">]> irb(main):003:0> exit (2.3ms) rollback transaction
exitでrollbackされました!