Ruby on RailsによるWebアプリケーションの作り方(入門編)
categories: Ruby Rails tags: HowTo ISDL Programming Rails Ruby
研究室のRails勉強会の為に、Railsアプリケーションを作るときの最初のフロー(scaffoldまで)をまとめてみます。なお、ここではRails環境はすでに構築済みのものとします。(環境構築についてはこちらを参照)
目次は以下の通り。
- railsアプリ作成
- データベース設定(database.yml)
- データベース定義(ActiveRecord::Migration)
- 動くアプリケーション(ひな型)作成
1. railsアプリ作成
ここではbookmarkという名前の簡単なブックマークサービスを作成します。まずは以下のコマンドを実行します。
mac:~$ rails bookmark
すると以下のような出力が得られ、bookmarkアプリのディレクトリが生成されます。
mac:~$ rails bookmark
create
create app/controllers
create app/helpers
create app/models
create app/views/layouts
create config/environments
create components
create db
create doc
create lib
create lib/tasks
create log
create public/images
create public/javascripts
create public/stylesheets
create script/performance
create script/process
create test/fixtures
create test/functional
create test/integration
create test/mocks/development
create test/mocks/test
create test/unit
create vendor
create vendor/plugins
create tmp/sessions
create tmp/sockets
create tmp/cache
create Rakefile
create README
create app/controllers/application.rb
create app/helpers/application_helper.rb
create test/test_helper.rb
create config/database.yml
create config/routes.rb
create public/.htaccess
create config/boot.rb
create config/environment.rb
create config/environments/production.rb
create config/environments/development.rb
create config/environments/test.rb
create script/about
create script/breakpointer
create script/console
create script/destroy
create script/generate
create script/performance/benchmarker
create script/performance/profiler
create script/process/reaper
create script/process/spawner
create script/runner
create script/server
create script/plugin
create public/dispatch.rb
create public/dispatch.cgi
create public/dispatch.fcgi
create public/404.html
create public/500.html
create public/index.html
create public/favicon.ico
create public/robots.txt
create public/images/rails.png
create public/javascripts/prototype.js
create public/javascripts/effects.js
create public/javascripts/dragdrop.js
create public/javascripts/controls.js
create public/javascripts/application.js
create doc/README_FOR_APP
create log/server.log
create log/production.log
create log/development.log
create log/test.log
はい、railsアプリ作成はここまで。簡単でしょ?
2. データベース設定(database.yml)
次に、アプリケーションで使用するデータベースを指定します。まずはアプリケーションディレクトに移動。
mac:~$ cd bookmark
次に使用するデータベースの設定ファイルを編集します。
mac:~$ vi config/database.yml
編集するのはこの部分。
database: bookmark_development username: root password: host: localhost
今回はデータベース名はデフォルトのbookmark_developmentというのを利用します。ユーザ名とパスワードだけはあなたの環境に合わせて編集してください。
これでデータベース設定は終了です。
3. データベース定義(ActiveRecord::Migration)
次にデータベース構造を定義します。まずはデータベース定義ファイルを作成しましょう。
mac:~/bookmark$ ./script/generate migration bookmark_base
create db/migrate
create db/migrate/001_bookmark_base.rb
では、実際にこのファイルを編集します。
mac:~/bookmark$ vi db/migrate/001_bookmark_base.rb
最初は以下のようになっています。
class BookmarkBase < ActiveRecord::Migration def self.up end def self.down end end
ここではitemというテーブルにtitle, url, user_id, description, created_atというカラムを用意します。この定義は次のようになります。
class BookmarkBase < ActiveRecord::Migration
def self.up
create_table :items do |t|
t.column :title, :string
t.column :url, :string
t.column :user_id, :integer
t.column :description, :text
t.column :created_at, :datetime
end
end
def self.down
drop_table :items
end
end
これでテーブル定義も終了です。
4. 動くアプリケーション(ひな型)作成
もうあとすこしで(とりあえず)動くプログラムが出来上がります。
まず、MySQLのデータベースを作成します。
mac:~/bookmark$ mysql -u root -p
mysql> create database bookmark_development; mysql> exit
次に、以下のコマンドで実際にテーブルを作成しましょう。
mac:~/bookmark$ rake migrate
以下のような結果が得られて、テーブルが作成されます。
mac:~/bookmark$ rake migrate (in /Users/nov/Desktop/bookmark) == BookmarkBase: migrating ========================= -- create_table(:items) -> 0.0043s == BookmarkBase: migrated (0.0044s) ==================
では、ひな型作成のおまじないを。
mac:~/bookmark$ ./script/generate scaffold item
実行結果はこんな感じ。アプリケーションのひな型になるファイルが複数自動生成されます。
mac:~/bookmark$ ./script/generate scaffold item
exists app/controllers/
exists app/helpers/
create app/views/items
exists test/functional/
dependency model
exists app/models/
exists test/unit/
exists test/fixtures/
create app/models/item.rb
create test/unit/item_test.rb
create test/fixtures/items.yml
create app/views/items/_form.rhtml
create app/views/items/list.rhtml
create app/views/items/show.rhtml
create app/views/items/new.rhtml
create app/views/items/edit.rhtml
create app/controllers/items_controller.rb
create test/functional/items_controller_test.rb
create app/helpers/items_helper.rb
create app/views/layouts/items.rhtml
create public/stylesheets/scaffold.css
はい、できあがりです。じゃあ実際に動かしてみましょうか。Railsアプリには簡易サーバーが用意されているので、以下のコマンドでそのサーバを起動します。
mac:~/bookmark$ ./script/server
それでは動作確認です。ブラウザを開いて、http://localhost:3000/itemsにアクセスしてみてください。こんな画面が現れたら、ひな型完成です。
これでRailsアプリのひな形は完成です。どうです?簡単だと感じていただけたでしょうか??
あとはこのひな型をちょこちょこ編集して、実際のアプリケーションを作成して行くのですが、今回の内容はここまでで。続きをご希望の方は、コメントいただければ検討いたしますm_ _m
独学でRailsの勉強を続けたい方には、こちらの書籍(Rails開発者執筆のRails入門書)をおすすめします。
日本語がいいよ!!って方は翻訳版を。僕も翻訳版派です(w
おわりに
と、ここまでを、明日Webアプリケーションを作ったことの無い学部生達に、20分くらいで教えたいのです。が、WindowsでのRails環境構築が鬼門です。僕はやったことない。。

