Railsで作る最も簡単なブログシステム(1)

最も簡単じゃなかったらごめんなさい。

  • Rails 2.0.2対応です。
  • 総まとめ(全部出来たら書く)

さて、準備は整いましたでしょうか。次の3つが終わっていればOKです。

  1. Rubyのインストール → WindowsでRubyを始める方法 - dan5yaの日記
  2. Railsのインストール → WindowsでRailsを使う(おさらい) - dan5yaの日記
  3. DB(SQLite3)のインストール → WindowsでSQLite3を使う(おさらい) - dan5yaの日記

Railsを利用して、とってもシンプルなブログシステムを作成しみましょう。これはRailsに慣れるためのすごく簡単なチュートリアルです。

プロジェクトの作成

それではコマンドプロンプト(シェル)を開いてください(コマンドプロンプトの準備について)。作業ディレクトリを開いたら、まずそこにRailsプロジェクトを作成します。プロジェクトの名前はPipinとします。

次のコマンドを打ち込んでください。

rails pipin

railsコマンドが実行されると、次のようなメッセージが表示されます。

create
create  app/controllers
create  app/helpers
create  app/models
create  app/views/layouts
(略)

これでプロジェクトが作成されました。上記のログは作成されたファイルやディレクトリを示しています。

cdコマンドで、カレントディレクトリを今作成したpipinディレクトリに移します。

C:\work>cd pipin

C:\work\pipin>

ここかプロジェクトのホームディレクトリとなります。以降のコマンドは、すべてここをカレントディレクトリとして実行してください。

scaffoldの作成

これからブログシステムを作るわけですが、まず最初はgenerateスクリプトを使ってブログ記事の管理画面を作ります。次のコマンドを実行してください。

ruby script/generate scaffold Entry title:string body:text created_at:datetime

実行結果は、次のようになります。

      exists  app/models/
      exists  app/controllers/
      exists  app/helpers/
      create  app/views/entries
      exists  app/views/layouts/
      (略)
      create  app/helpers/entries_helper.rb
       route  map.resources :entries

上記コマンドにより、次のファイルがジェネレートされました。

  • Entryモデル …… app/models/entry.rb
  • Entriesコントローラ …… app/controllers/entries_controller.rb
  • entriesビュー …… app/views/entries/ ディレクトリ以下のerbファイル
  • Migration定義ファイル …… db/migrate/001_create_entries.rb
  • テストに必要なファイル群 …… testディレクトリの各サブディレクトリ以下

他にもありますが、上記のものが特に重要なファイルです。

DBの初期化

Migration定義ファイルは、DBを初期化するためのスクリプトです。以下のコマンドでDBを初期化しましょう。

 rake db:create    # ← DBにSQLite3を使っている場合は不要
 rake db:migrate

実行結果です。

(in C:/work/pipin)
== 1 CreateEntries: migrating =================================================
-- create_table(:entries)
-> 0.1090s
== 1 CreateEntries: migrated (0.1090s) ========================================

これで記事を管理するentriesテーブルがDBに作成されました。

サーバーを起動

それではここでサーバーを起動します。

次のコマンドでサーバーを起動できます。

ruby script/server

サーバーが起動すると、次のようなメッセージが表示されます。

=> Booting WEBrick...
=> Rails application started on http://0.0.0.0:3000
=> Ctrl-C to shutdown server; call with --help for options
[2008-01-24 13:45:47] INFO  WEBrick 1.3.1
[2008-01-24 13:45:47] INFO  ruby 1.8.6 (2007-09-24) [i386-mswin32]
[2008-01-24 13:45:47] INFO  WEBrick::HTTPServer#start: pid=3000 port=3000

ブラウザからアクセス

サーバーが起動すると、ブラウザからアクセスすることが出来ます。ブラウザで次のURLにアクセスしてみてください。

http://localhost:3000/entries

(もしもRailsプロジェクトが、ブラウザを実行するPCと別のPCに置いてある場合は、localhostの部分をそのPCのIPアドレスドメインに置き換えてください。)

このURLにアクセスすると、次のような画面が開きます。

TODO.SS /entries

ここは、ブログの記事の一覧を表示する画面です。まだ記事は一件も登録されていませんので、何も表示されません。「New entry」をクリックすると、記事を新規作成することが出来ます。

TODO.SS /entries/new

TitleとBodyを入力して、「Create」をクリックしてください。(日本語を入力する場合は、ブラウザの文字エンコーディングUTF-8にしてください。)

記事を作成すると、また最初の画面に戻ります。今度はここに作成した記事が追加されています。いくつか記事を作成したり、消したりしてみてください。ここで操作できるページは、最初にgenerateコマンドで生成したファイルによって実現されています。

SQLite3のデータファイル

ちなみに、ここで作成・編集した記事はDBに保存されています。DBにSQLite3を使っている場合は、dbディレクトリにあるファイルdevelopment.sqlite3に情報が保存されています。このファイルを消すと、すべてのデータを消すことができます。ファイルを消した場合は、次のコマンドを実行して、再びDBを初期化してください。

rake db:migrate

これで、もう一度、新しいデータファイルが作成されます。

SQLite3は、データがファイルとして管理されているので、簡単にバックアップを取ったり、データを差し替えたり、削除したりできます。

まとめ

今回の手順をまとめます。

rails pipin
cd pipin
ruby script/generate scaffold Entry title:string body:text created_at:datetime
rake db:create
rake db:migrate
ruby script/server

上記コマンドを実行し、ブラウザから次のURLを開けば、Railsサーバーにアクセスできます。