Railsで作る最も簡単なブログシステム(1)
最も簡単じゃなかったらごめんなさい。
- Rails 2.0.2対応です。
- 総まとめ(全部出来たら書く)
さて、準備は整いましたでしょうか。次の3つが終わっていればOKです。
- Rubyのインストール → WindowsでRubyを始める方法 - dan5yaの日記
- Railsのインストール → WindowsでRailsを使う(おさらい) - dan5yaの日記
- 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にアクセスしてみてください。
(もしも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サーバーにアクセスできます。