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のほう
自動生成されたファイルを見てると勉強になる。
でも、それについてはまた今度。