ランプの中身(Ruby on Railsのシステム開発)
ランプの中身(Ruby on Railsのシステム開発)では、株式会社ケイビーエムジェイのRuby on Railsエンジニアが蓄積したノウハウを公開しています。Ruby on Railに関する技術解説や実践的なノウハウなど、開発現場の技術に則したコンテンツを随時追加していきます。 初心者の方でもわかりやすい技術解説を心がけています。リクエスト、ご質問も受け付けいますので、お気軽にコメントを記述して下さい。

< ドロップダウンに簡単... |  メイン | Scaffoldはどこからくるの? 後編... >

zenpouの中身(Ruby
2007.12.27

Scaffoldはどこからくるの? 前編

こんにちは。
KBMJのエンジニアの高瀬です。

今回、ruby on railsに関する技術コラムを書くと言う事で、
scaffoldでプログラムを作ってみて、またそのプログラムは

どの様にして作られているか解説します。

 
Scaffoldってそもそも何?
最近のアプリケーション(特にWeb)は、アプリケーションのデータを

DB上で管理する事が多くなっていますが、

そういったDB上のテーブルを操作するプログラムを作りたい場合に、

基本的なテンプレートを提供してくれるのがscaffoldです。

scaffoldを使うと、簡単なアプリケーションがそれこそ10分で

出来上がるので、かなり重宝します。

 
 実際にScaffoldで作ってみる。
まず、Scaffoldを使ってアプリケーションを作ってみます。

 

最初に、railsでscaffold_testプロジェクトを作ってみましょう。

コマンドプロンプト上で、

rails scaffold_test

と入力してみてください。(>は入力しなくて良いです。)

大量に[ create ~~]と出てきたと思います。

今後は、このプロジェクト上で作業を行うので、

cd scaffold_test


で、カレントディレクトリを移動しておいてください。

 

次に、scaffold_testプロジェクト内でscaffoldを作ってみます。

扱うテーブルを決める必要がありますので、とりあえずメンバー管理として、

Memberモデルをつくり、名前(name)と説明(discription)と誕生日(birthday)だけ管理しましょう。

 

 ruby script/generate scaffold Member name:string discription:text birthday:datetime

 

これで、scaffoldの土台は出来ました。

ですが、肝心のdbがないので、 DBを作成します。

rails 2.0から、db:createが出来たので、そのコマンドを使います。

 

 

rake db:create


(ここでは、DBの作成方法のエラーが出た場合や、1.x系の話は割愛します)

DBが出来たら、scaffoldで作成されたmigrationファイルからテーブルを作成します。

rake db:migrate


これでテーブルが出来たのでサーバーを立ち上げて、

プログラムにアクセスしてみましょう。

 
ruby script/server


を実行し、 下記のURLにアクセスしてください。

http://localhost:3000/members

「Listing members」と表示されるページにアクセスできると思います。

これで、New memberと表示されているリンクをクリックすると

メンバーが登録できます。

 

これだけで簡単なメンバー管理システムの出来上がりです。

 

scaffoldのソースを見てみる。


途中で実行した

 

ruby script/generate scaffold Member name:string discription:text birthday:datetime



で、管理する項目や、項目の属性を指定しているのですが、

今のプロジェクトのソースを見てみましょう。

scaffold_test フォルダの下にある、

app/controllers/members_controller.rbを何かのテキストエディタで

開いてみてください。

 

自分が書いた覚えのないプログラムが存在していると思います。

実は、ruby script/generateコマンドを実行した時、

      exists  app/models/
      exists  app/controllers/
      exists  app/helpers/
      create  app/views/members
      exists  app/views/layouts/
      exists  test/functional/
      exists  test/unit/
      create  app/views/members/index.html.erb
      create  app/views/members/show.html.erb
      create  app/views/members/new.html.erb
      create  app/views/members/edit.html.erb
      create  app/views/layouts/members.html.erb
      create  public/stylesheets/scaffold.css
  dependency  model
      exists    app/models/
      exists    test/unit/
      exists    test/fixtures/
      create    app/models/member.rb
      create    test/unit/member_test.rb
      create    test/fixtures/members.yml
      create    db/migrate
      create    db/migrate/001_create_members.rb
      create  app/controllers/members_controller.rb
      create  test/functional/members_controller_test.rb
      create  app/helpers/members_helper.rb
       route  map.resources :members

 と、大量にメッセージが出たと思いますが、ここで、createと出ている行は、railsが自動で

 

ソースコードを作ってくれています。

 

      create  app/views/members
      create  app/views/members/index.html.erb
      create  app/views/members/show.html.erb
      create  app/views/members/new.html.erb
      create  app/views/members/edit.html.erb
      create  app/views/layouts/members.html.erb
      create  public/stylesheets/scaffold.css
      create    app/models/member.rb
      create    test/unit/member_test.rb
      create    test/fixtures/members.yml
      create    db/migrate
      create    db/migrate/001_create_members.rb
      create  app/controllers/members_controller.rb
      create  test/functional/members_controller_test.rb
      create  app/helpers/members_helper.rb


 というわけで、次回はこのコードがどの様にして作られているか、解説して行きたいと思います。

コメント (0)  |トラックバック (0)

ブックマークに追加する

トラックバック URL

この記事にコメントする

ニックネーム:
メールアドレス:
URL:


KBMJのWebソリューション
Ruby on Rails Summer Festival 2008開催決定!!

TOPICS

2008/08/14
ZD Net Builder」の連載記事です。第七回は「Rubyでどう書く?:RubyCocoa+Core Animationでお手軽アニメーション」が掲載されました。

2008/08/06
ZD Net Builder」の連載記事です。第六回は「Rubyでどう書く?特別編:Matzからのお題」が掲載されました。

2008/07/29
アットマーク・アイティ」にケータイWebアプリ開発、9つの注意点が掲載されました。

2008/07/11
ZD Net Builder」の連載記事です。第五回は「Rubyでどう書く?:RubyでWord文書を作成する」が掲載されました。

全体のRoR最新ブログ一覧

プロフィール

  • zenpou
  • 1. 名前: たかせゆういち
    2. blog: http://d.hatena.ne.jp/zenpou
    3. 年齢: 24くらい

    Railsについて

    1. KBMJでRailsの開発をやっています。
    2. 小江戸らぐというユーザーグループで、毎月Railsの勉強会の講師をしています。。

    開発環境とか

    1. Windows Vista(ノート) と Windows XP(デスクトップ)を2台並べてます。(synergyで連動)
    2. でも、実際に開発する場合、ネットに繋がってたらLinuxにPuttyで接続して開発。
    3. ネットに繋がってない場所だと、ローカルのcoLinux上にPuttyで接続して開発。
    4. 開発に使うLinuxは、ディストリは余り気にしないけど、debianとCentOSとFedora。
    5. Linux上でzsh + screen で開発します。screenで画面切り替えながらログをtail -fしたり、ruby script/consoleしたり、mysqlしたり。
    6. エディタはvim使ってます。

ブログの購読

RSS

timelog
株式会社ケイビーエムジェイロゴ