ActiveRecordで軽く遊べるようになってきたので、次はWebアプリにチャレンジしてみようと思う。
ついにRailsと呼ばれるものに触れれる!!
DBは引き続きemployeesテーブルとdepartmentsテーブルをしようする
念のためDDLを示す。
create table departments ( id serial primary key, name varchar(50) ); create table employees ( id serial primary key, name varchar(50), department_id int, constraint fk_departments foreign key (department_id) references departments(id) );
DBの準備
とりあえずDBの準備だ。
適当にDBを起こして上記DDLを流し込んでテーブルを用意しておく。
ちょっとだけポイントなのは、データベースを3つ用意しておくってこと。
なんか、Railsはテスト用とか開発用とか色々DBを使い分けるらしい。
ってことでここでは、下の3種類のDBを作りました。
プロジェクトの作成
Railsでは、コマンドラインからプロジェクトをさくっと作れる
やり方は簡単、下のコマンドをうつだけ。
rails プロジェクト名
これでダダダーっとファイルやフォルダを作ってくれる。
今回は、employee_managementって名前でプロジェクトを作った。
プロジェクトを作ったときに出たログは下のような感じ
PS D:\dev\Ruby> rails employee_management
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 tmp/pids
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/process/inspector
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
データベースの接続情報を書く
DBの接続先情報は、config/database.ymlに書いてあります。
でふぉだとMySQL用の設定が書いてある。
development: adapter: mysql database: employee_management_development username: root password: host: localhost test: adapter: mysql database: employee_management_test username: root password: host: localhost production: adapter: mysql database: employee_management_production username: root password: host: localhost
一応今回は、ローカルのPostgreSQLにDBを切ったのでそのように設定を書き変える
development: adapter: postgresql database: rails_development username: postgres password: postgres host: localhost test: adapter: postgresql database: rails_test username: postgres password: postgres host: localhost production: adapter: postgresql database: rails_production username: postgres password: postgres host: localhost
足場を作る
さて、今日はここまでやったら寝よう。
Railsのデモやウリということで、足場となるscaffoldを作ってみようと思う。
作るといってもたいしたことはしない。
コマンドを打つだけ。
プロジェクトのフォルダの一番上で下のようなコマンドをうつと、雛形を作ってくれる。
ruby script/generate scaffold モデル名 コントローラ名 アクション名1 アクション名2 ...
ちなみに必須なのはモデル名だけで、ほかは何も指定しなくてもデフォルトの値が設定さえっる。
デフォルトの値は下のとおり
- コントローラ名:モデル名の複数形
- アクション名:とりあえず全部
ってことでここでは最低限の設定でemployeesテーブルとdepartmentsテーブルを編集するものを自動生成する。
ruby script/generate scaffold employee ruby script/generate scaffold department
これで完成。
実行してみる
アプリケーションサーバを起動する。起動するには下のコマンドを打ち込めばOK
ruby script/server
なにやら起動するので、http://localhost:3000/employeesとhttp://localhost:3000/departmentsを表示してみよう。
下のような画面ができているはずです。
departmentsのほう

自動生成されたファイルを見てると勉強になる。
でも、それについてはまた今度。
