こりゃ便利!RailsのModelやControllerを削除する方法
こんにちは、@Yuuです。
ようやくRubyの書き方が少しずつ分かってきたかな、というまだまだRails初心者です。
さて、RailsでModelやControllerの作り方は簡単ですし、一番最初に学習するところですよね。
しかし作ったModelやControllerを削除するにはどうしたらいいのか?
以下のような時ですね↓
Modelの名前ミスって作っちゃった!
Controller間違えて作っちゃったYo!
おっちょこちょいの私にはよくあることです。
1日1回はこんなミスしてると思います。
そんな余談はいいとして、こういう時にどうやったら削除出来るか?というのを今回はご紹介したいと思います。
スポンサーリンク
ModelとControllerの作成
まずModelやControllerを作らないと話が進まないので、とりあえず作ります。
Modelを作成
まずModelから
1 |
rails generate model user name:string address:string |
「generate」は「g」と省略して書けるので以下のようにも書けますね。
1 |
rails g model user name:string address:string |
このコマンドを行うとRailsが、以下のようにファイルを色々作成してくれます。
1 2 3 4 5 6 |
invoke activerecord create db/migrate/20150827082206createusers.rb create app/models/user.rb invoke testunit create test/models/user_test.rb create test/fixtures/users.yml |
Controllerを作成
お次にController
1 |
rails generate controller users |
こちらも同じく「generate」を省略出来るので
1 |
rails g controller users |
と書けます。
このコマンドを行うと、Modelの時と同じくRailsがファイルを色々作成してくれます。
1 2 3 4 5 6 7 8 9 10 11 12 13 |
create app/controllers/userscontroller.rb invoke erb create app/views/users invoke testunit create test/controllers/userscontrollertest.rb invoke helper create app/helpers/usershelper.rb invoke testunit invoke assets invoke coffee create app/assets/javascripts/users.coffee invoke scss create app/assets/stylesheets/users.scss |
ModelとControllerの削除
では本題のModelやControllerを削除する方法を書きます。
ModelやControllerを作成する時は「generate」というコマンドを使ったわけですが、削除する時は「destroy」というコマンドを使用します。
書き方もModelやControllerを作成する時とほとんど一緒。
Modelの削除
先程のModelを削除する時のコマンドがこちら。
1 |
rails destroy model user |
そしてコマンドを実行すると先程作成してくれたファイルを削除してくれていることが分かります。
1 2 3 4 5 6 |
invoke activerecord remove db/migrate/20150827082206createusers.rb remove app/models/user.rb invoke testunit remove test/models/user_test.rb remove test/fixtures/users.yml |
これはすごい!Rails賢い!(⌯¤̴̶̷̀ω¤̴̶̷́)✧
Controllerを削除
ControllerもModelの時と一緒。
先程のControllerを削除する際のコマンドがこちら。
1 |
rails destroy controller users |
そして削除されたファイルたち。
1 2 3 4 5 6 7 8 9 10 11 12 13 |
remove app/controllers/userscontroller.rb invoke erb remove app/views/users invoke testunit remove test/controllers/userscontrollertest.rb invoke helper remove app/helpers/usershelper.rb invoke testunit invoke assets invoke coffee remove app/assets/javascripts/users.coffee invoke scss remove app/assets/stylesheets/users.scss |
Modelの時と同じで、バッチリ作ったファイルを削除してくれてます。
destroyの注意点
ModelもControllerもほとんど「generate」を「destroy」にしただけで、削除が出来るというわけですね。
注意点としては、「destroy」は「d」と言った省略形はありません。
なので、以下のように書いた場合はエラーになります。
1 2 |
rails d model user #エラー rails d controller users #エラー |
scaffoldは?
「じゃあscaffoldも削除出来るの?」と思って調べたら、scaffoldも同じでした。
1 2 3 |
rails g scaffold user name:string address:string #作成する時 rails destroy scaffold user #削除する時 |
「destroy」というコマンドについて調べたところ
説明 rails generateで自動生成したファイルを削除
destroyで「helper」や「migration」なども削除出来るようです。
なるほど、便利なコマンドですね!₍₍ (ง ˙ω˙)ว ⁾⁾
先程のサイトでは、その他に削除出来るものも一覧で出ていますので、是非参考にしてみて下さい。
(destroyが書かれているのはページ中程)
あとがき
Railsを始めた最初の頃は、scaffoldを使って作成した後に間違えていた場合、一々新しいファイルを作り、また一からscaffoldをやって全部作り直してましたw
今思えばdestroy使えば良かったんだなぁと思います。
むーん、もっと早く調べれば良かった(`‐ω‐´)
ではでは
今回はこの辺で!ヽ(•̀ω•́ )ゝ✧