Ruby on Rails 勉強
Ruby onRails プロジェクト作成
プロジェクトを作成するためにはrailsのバッチを使う。これはrailsをインストールしたときに%RUBY_HOME%\binに自動的にインストールされたものらしい。コマンドプロンプトでプロジェクトを作りたいディレクトリに移動して、
rails プロジェクト名
で作成可能。なんかいっぱいディレクトリやらファイルやらが作られているけど、気にしない。そのうち覚えればいいや。とりあえず出来たプロジェクトを実行してみたいので、できたプロジェクトのディレクトリに移動して、scriptディレクトリにserverというスクリプトファイルがあるので、
ruby script/server
と打てば、実行される。「Rails 2.3.2 application starting on http://0.0.0.0:3000」と表示されるので、http://127.0.0.1:3000 で一応実行可能。起動オプションで[--port ポート番号]を含めると、任意のポートで起動が可能。とめるときは[Ctrl] + [c]らしい。へー、Apacheか何かと連携するのかと思っていたけど簡単なんだなと思う。
Railsに乗るアプリケーションはMVCで設計するとのことで、アプリケーションを入れる[app]ディレクトリの中に[controllers]、[models]、[views]に各M,V,Cとなるものを入れていくらしい。[helpers]は・・・知らん!そのうち覚えるでしょ。
コントローラの作成
コントローラはActionというものの集合体らしい。誤解を恐れずに言えば画面のイベントごとに作るって感じなのかな。Controlerが画面全体のリクエストを受け取り、Actionがイベントを担当するみたいな。コントロールはコマンドプロンプトから自動生成させるらしい。scriptディレクトリにあるgenerateというスクリプトファイルを使うたとえばHelloコントローラを作るには、プロジェクトのトップディレクトリで下記を実行
ruby script/generate controller Hello
コマンドプロンプトに何かドロっといっぱい文字が出力されるので。app/controllersを見ると、上記の例で言うとhello_controller.rbが出来ているのがわかる。これでコントローラーのいっちょあがりらしい。逆にコントローラの削除は、destroyというスクリプトファイルを使うらしい。
ruby script/destroy controller Hello
アクションの作成
アクションは作ったコントローラーに自分でメソッドを定義すればそれがアクションになるらしい。worldメソッドを定義してみる。さっきのHelloコントローラーとあわせるとHello Worldになるって寸法。
class HelloController < ApplicationController def world #なんもしない end end
ビューの作成
app/viewsにコントローラ単位にフォルダが切ってあるので、そこにActionに対応したビューを作るらいしい。ファイル名は、アクション名.rhtmlとなる。今回の場合は、world.rhtmlとなる。
world.rhtmlの内容
Hello World!
こんな感じ。これで一通り出来たので、確認する。確認は、コントローラー名/アクション名になるらしいので、
http://127.0.0.1:3000/hello/world