Translations of this page?:

はじめてのRailsアプリケーション

Railsでの開発がどんなものなのかを味わってみませんか? このチュートリアルに従って始めましょう!

Part 1 - インストール

対応したプラットフォームのRuby/Railsをインストールし、SQLiteがインストールされていることを確認します(Macをお持ちの場合は付属しています)。インストールに関するwikiページはこちらです: MacWindowsLinux

Part 2 - 作成 & 実行

  1. Railsのコマンドラインツールを起動して、アプリケーションを作成します。
    $ rails myapp

    これで、Railsアプリケーションのスケルトンが作成されます。

  2. このように文字を打ち込んでディレクトリに移動します:
    $ cd myapp
  3. Railsサーバーを起動します:
    $ ruby script/server

    Note: You may not need the “ruby” part of that if you're on a Mac or Linux.

  4. ブラウザを起動し、http://localhost:3000 を開きます。Rails が起動していることがわかるでしょう; これだけです! うまくいきました、あなたの実力です。

Part 3 - データベースとScaffoldの作成

  1. 好みのエディタでアプリケーションを開きます。
  2. config/database.yml ファイルを開きます。ここでは、アプリケーションごとに異なるデータベースを設定できますが、この例では何も設定を変更するべきではありません。デフォルトのデータベース名は、すでにお気づきかもしれませんが、Railsアプリケーションから取得されています。
  3. もう一つのコマンドプロンプトを開き(こうしてサーバーをバックグランドで起動させたままにし)、アプリケーションディレクトリに移動して、こちらを実行します:
    $ rake db:create

    これで開発データベースが作成されます。

  4. さあ、最初のテーブルとインターフェースを作成しましょう。Railsでは、このことはscaffoldを作成してここから開始することを意味しています。scaffold はシンプルにできている開始点であり、ここから複雑なコードを継続的に追加できます。なんのパラメータも設定せずに、最初のscaffoldコマンドを実行してみましょう:
    $ ruby script/generate scaffold

    しばらくするとアウトプットが生成されます。どのようにコマンドを使うかが表示されます。

  5. 次に進んで、scaffoldを利用してウェブアプリケーションを生成してみましょう。usersテーブルを作成します:
    $ ruby script/generate scaffold user first_name:string last_name:string active:boolean

    コピーペーストでもかまいませんよ、誰にも言いませんから。これで、scaffoldが作成されました、これはたくさんのテンプレートの固まりです。

  6. では、 マイグレーションを実行 しましょう。これはデータベースにテーブルを作成してくれます。
    $ rake db:migrate
  7. 次に、ウェブブラウザにもどり ( サーバーを停止していた場合は起動して)、http://localhost:3000/users に移動します。
  8. 何人かのユーザーを作成し、Railsのインターフェースを楽しんでください!

Part 4 - 機能の追加

  1. bio 列をユーザーに付け加えるのを忘れていたことがわかりました - しまった!新しくマイグレーションを作成して、このカラムを追加することもできますし、作成されたマイグレーションをロールバックして取り消すこともできます。後者を実施しましょう。テーブルを削除して、カラムを追加するためには、このコマンドを実行します:
    $ rake db:rollback

    これでひとつのマイグレーションがロールバックされます。

  2. /db/migrations/ または /db/migrate/ ディレクトリにあるマイグレーションを開きます。一つだけファイルがあるはずです。
  3. どのようにマイグレーションが”up”メソッドでマイグレートアップを実現し、”down”メソッドでマイグレートダウンを実現しているのかがわかります。
  4. bio列を追加したい場合、t.boolean :active 行のあとに、こちらを追加します:
    t.text :bio
  5. ファイルを保存して、rake db:migrate を再び実行し、データベースをマイグレーションします:
    $ rake db:migrate
  6. この時点でブラウザをチェックしても、bio列は自動的にはユーザー情報やフォームには現れていません。これは自分で追加する必要があります。はい、ここでこのファイルを消してscaffoldコマンドを実行することもできますが、それでは何も学ぶことがありません。
  7. /app/views/users/new.html.erb ファイルを開きましょう。これが新しいフォームを記述しています。active checkbox の下に、下記のコードを追加してbio列を追加する必要があります。
    <p>
      <%= f.label :bio %><br />
      <%= f.text_area :bio %>
    </p>
  8. ブラウザから新しいユーザーのページを開きます。 http://localhost:3000/users/new bio列が表示されていて、新しいユーザーはbioと一緒に追加できます。 追加で、”edit” ビュー(/app/views/users/edit.html.erb にあります)を更新したい場合も同じコードを使うことができ、ユーザーのbioを更新できるようになります。
  9. When you create a user, you're brought automatically to his/her show page. ページを表示するときに、bioを追加しましょう。/app/views/users/show.html.erb ファイルを開き、, and underneath the Active field の下にこれを追加します:
    <p>
      <b>Bio:</b>
      <%=h @user.bio %>
    </p>
  10. ファイルを保存し、ブラウザから確認します。最初に、変更が確認できない場合は、”show” ページにいること ( “index” ではないこと)を確認しましょう。このパートが達成できたら、野蛮に”やった!”とさけびましょう。偉大なる進歩です。

Part 5 - はじめてのバリデーション

  1. Railsでは、モデルのファイルでバリデーションを行います、では、/app/models/user.rbを開いてみましょう。
  2. ユーザーがファーストネームとラストネームを入力する必要があるとします。その場合、ユーザーモデルに対してバリデーションを追加しましょう、それはこのようになります:
    class User < ActiveRecord::Base
      validates_presence_of :first_name, :last_name
    end
  3. ファイルを保存し、ブラウザを開き、ファーストネームかラストネームのいずれかなしでユーザーを作成してみます。
  4. Railsには多くのヘルパーバリデーションクラスがあり、APIページの右側で一蘭を確認できます。

追加で、お楽しみとしてアプリケーションにもう一つのバリデーションを追加してみましょう。

Part 6 - レイアウトの変更

  1. アプリケーションのHTMLソースをブラウザで確認すると、アプリケーションがある種のレイアウトで作成されていることに気づくでしょう。デフォルトでは、”scaffold” コマンドを実行すると、 /app/views/layouts/users.html.erb ファイルが作成され、レイアウトとして利用されます。
  2. ほとんどのコントローラーにたった一つだけのレイアウトを利用したくなるでしょう、ですからもっと一般的な名前に変更します。users.html.erbapplication.html.erbにリネームします。Railsの規約では、layoutsディレクトリにapplication.html.erbファイルがあった場合は、すべてのコントローラーがそれがデフォルトとして利用します(必要な場合はあとでオーバーライドすることも出来ます)。
  3. お楽しみとして、レイアウトに何か追加してみましょう。application.html.erb を開き、このような追加をします:
    <h2>Rails Rocks!</h2>
  4. ファイルを保存し、ブラウザを開くと、行った変更がすべてのウェブサイトのページに反映されていることがわかるでしょう。

Part 7 - コンソールを楽しむ

  1. ユーザーモデルで楽しんでみましょう。コマンドプロンプトから以下のように実行します:
    $ ruby script/console

    Ruby IRB セッションに入り、モデルにアクセスしています。

  2. 楽しむ前に、下記のコマンドを実行すると生成されるSQLコマンドを確認することができます。
    $ ActiveRecord::Base.logger = Logger.new(STDOUT)
  3. 単純なRuby構文を試してすべて問題なく動作していることを確認します:
    puts "Hello Dude!"
  4. では、モデルでいくつか遊んでみましょう。このようにして新しいモデルを作成します:
    u = User.new
    u.first_name = "Gregg"
    u.last_name = "Pollack"
    u.save

    Notice the SQL that is generated.

  5. すべて1行で作成します:
    User.create(:first_name => "Joe", :last_name => "Blow")

    エラーになった場合は、文法の問題がないかを確認します。

  6. ファーストネームがJoeのユーザーを取得し、名前を”Johnson”に変更してみます。
    u = User.find_by_first_name("Joe")
    u.last_name = "Johnson"
    u.save

    SQLが生成されることが確認できました; すばらしい!

  7. 次にこのユーザーを削除します。
    u.destroy
  8. これらのコマンドを試してそれぞれ何が行われているかを見て楽しみましょう:
    User.first
    User.last
    User.all

    変数に好きな値を設定し、属性を変更しながら遊んでみましょう。 .all が配列を返すことを確認します、 [0] や [2] を利用して配列の特定のアイテムを参照してはどうでしょう。

  9. システムのすべてのユーザー名を大文字で表示させてみましょう:
    User.all.each {|user| puts user.first_name.upcase }
  10. ファーストネームが表示され、ユーザーの配列が返されていることも確認できます。Rubyのあらゆるメソッドは、たとえそれがnilであっても何らかを返すことを覚えておきましょう。
  11. システム中のすべてのラストネームを保持する配列を作成してみましょう:
    User.all.map {|user| user.last_name }

    ここで興味があるのは返り値で、ラストネームの配列のはずです。

  12. API ページのこちらを確認します。右側に、ActiveRecordsオブジェクトで実行できるすべてのメソッドが記載されています。いくつか試してみましょう。

Additional Reading

The Getting Started with Rails Guide contains another fun walkthrough, but with additional explanation of Rails architecture.

 
ja/getting-started/first-rails-app-walkthrough.txt · 最終更新: 2009/08/24 22:50 by yahonda
 
Recent changes RSS feed Creative Commons License