【Rails基礎】1行でアプリができる!scaffoldの使い方




 

Railsには色々なコマンドがありますね。

中でもチート級に便利なのが

scaffold

です。

scaffoldは、「足場」の意味を持つ英単語。

工事現場でよく見る足場ですね。

Railsのscaffoldを発動すると、アプリ開発の「足場」を一瞬で作れるのです。

工事をすぐに始められるのですね。

今日はこのscaffoldの使い方を紹介します。

利用環境は以下の通り。

Rails バージョン 2.5.0
Ruby バージョン 5.2.4.1

 

Railsのscaffoldの使い方

使い方は簡単です。

アプリのディレクトリに移動したら、次のコマンドが発動するだけ。

そして、その後に

を唱え、マイグレーションファイルを実行すると、データベースまで誕生します。

たった2行でRailsアプリができちゃうのですね。

 

Railsのscaffoldでは何ができるのか?

それでは、scaffoldを発動すると、何が誕生するのでしょうか??

scaffoldで「userモデル」を作った例を紹介します。

を発動し、

  • name(string型)
  • age(integer型)

という2カラムを作成したとします。

 

モデルファイル

まず、モデルファイルですね。

Userモデルでscaffoldを使うと、

user.rb

というモデルファイルができます。モデルファイルの中身はこんな感じ。

 

 

コントローラー

もちろんコントロールも作られ、中身もちゃんと入っています。

例えば、Userモデルでscaffoldを発動すると、

users_controller.rb

というコントローラーが誕生し、中身は次のようになっています。

 

いやあ、すごい。

indexからdestroyまで各アクションが勢揃いではありませんか。

 

ビューファイル

ビューファイルも生まれます。

  •  edit.html.erb
  • index.html.erb
  • show.html.erb
  • new.html.erb

というビューファイルがたった1行のコマンドで誕生するのです。

 

ルーティング

ルーティングも完璧です。

という1行しか書いてありませんが、この1行で十分。

指定したモデルのindexからdestroyまでルーティングの設定が完了するのです。

 

データベースもできる

もちろん、$ rails db:migrate を発動すれば、データベースもできます。

 

Railsのscaffoldでどんなアプリができるのか?

それでは、どんなアプリがscaffoldで誕生したか見ていきましょう。

ローカルホストのトップ(http://localhost:3000/)に飛んでみると、Railsのウェルカム画面。

Image from Gyazo
userモデルでscaffoldを作ったら(http://localhost:3000/users)へ。

すると、こんな感じのアプリが持っています。

 

Image from Gyazo
userを追加できますし、userの詳細も見れます。

user情報の更新もできるし削除もできます。

これは凄いですね。

デザイン未適用なので、味気ないですが、アプリの足場としては申し分ないです。

 

scaffoldは初心者におすすめできない?

ただし、です。

scaffoldを使えば簡単にアプリが作れすぎるので、

初心者はscaffold使うべからずと言われています。

なぜなら、仕組みを理解しないままブラックボックス状態でアプリを作ることになるからです。

 

ぼく自身、初期段階でscaffoldに出会ってしまい、scaffoldを乱用。

Railsアプリを作れたっちゃ作れたのですが、scaffoldを乱用しすぎると、応用が効きにくかったのです。

結果的に「scaffoldの枠を出たアプリ」を作れないままでした。

 

scaffoldに頼りすぎ、スキルアップできずにRailsの勉強をやめた過去があったのです。

現在は「scaffoldに頼らないアプリ開発の修行」に励んでいます。

 

初心者ほど、苦労した方が良いのです。

ルーティングをしこしこ書いて、コントローラーにアクションを追加し、ビューファイルを自力で作成するのが一番。

「脱scaffold」してから、Railsアプリの仕組みがわかってきました。

 

ただ、scaffoldが便利なのは変わりません。

Railsアプリで試したいことがあったら、すぐに足場が作れますから。

 

scaffoldの削除方法は?

という感じで、一瞬で簡単にアプリを作れましたが、

scaffoldで作ったファイルを削除したい時

はどうすればいいんでしょう?

 

削除方法も簡単です。

の1行でいいのです。

例えば、userモデルのscaffoldを無効にしたい場合、

です。

 

コマンドを発動すると、指定したモデル名のscaffoldファイルがごっそり消えます。

ただし、scaffoldを発動しても、データベースは残りますけどね。

時と場合に応じてscaffoldを試してみてください。

 

それでは!

Lin

Pocket
LINEで送る




音生入力で楽にブログを書く技が満載!
ブログ音声入力術

音声入力の使い方から文章を書くコツまで完全網羅。ブログを書きたいすべての人向けの電子書籍




コメントを残す

メールアドレスが公開されることはありません。