RailsによるアジャイルWebアプリケーション開発第二版を勉強するの巻(第1回:1〜4章)
これは何?
RailsによるアジャイルWebアプリケーション開発 第2版
- 作者: Dave Thomas,David Heinemeier Hansson,Leon Breedt,Mike Clark,Andreas Schwarz,James Duncan Davidson,Justin Gehtland,前田修吾
- 出版社/メーカー: オーム社
- 発売日: 2007/10/26
- メディア: 大型本
- 購入: 18人 クリック: 300回
- この商品を含むブログ (134件) を見る
分厚い上、27章まであるので、数回に分けて書きます
第1章 はじめに
Railsについて説明
第3章 Railsのインストール
OS毎のインストール方法を解説
後、開発環境について
第4章 Hello,Rails
Railsアプリの作り方、起動方法の解説
コントローラ、ビューの作り方
Railsアプリの作り方
C:\InstantRails-2.0-win\rails_apps>rails test
C:\InstantRails-2.0-win\rails_apps\testにRailsアプリが生成される
起動方法(Instant Railsの場合)
コントローラ生成
Sayというコントローラの生成
C:\InstantRails-2.0-win\rails_apps\test>ruby script/generate controller Say
C:\InstantRails-2.0-win\rails_apps\test\app\controllers\say_controller.rb
が生成される
RailsとリクエストURL
例:http://pragprog.com/online/demo/say/hello
アプリケーションのURLがhttp://pragprog.com/online/demoならば、
sayコントローラのインスタンスを生成し、
helloメソッドが呼び出される
最初のアクション
先ほどのsay_controller.rbにhelloメソッドを追記
class SayController < ApplicationController def hello end end
http://localhost:3000/say/helloを実行すると、テンプレートが無いと怒られる
Template is missing Missing template say/hello.html.erb in view path C:/INSTAN~1.0-W/rails_apps/test/app/views
テンプレートは、views/コントローラ名/アクション名.rhtmlに作られる
今回の場合、以下にテンプレートを作る
\test\app\views\say\hello.rhtml
<html> <head> <title>はろー</title> </head> <body> はろー! </body> <html>
もっかいhttp://localhost:3000/say/helloを実行
- UTF-8で作らないと文字化けするので注意!
動的な表示
ERd(Enbedded Ruby)を使用して、テンプレートファイル上のRubyコードを展開する
<html> <head> <title>はろー</title> </head> <body> はろー!<br> <!-- <%= %>で、中のrubyコードが実行された戻り値が出力 --> <%= 1+2 %><br> <!-- <% %>で、中のrubyコードが実行される(戻り値は出力されない) --> <% 3.times do |cnt| %> <%= cnt %>かい<br> <% end %> <!-- hメソッドでHTMLエンティティとしてエスケープ --> <%= h("<かっこ>") %> </body> <html>
コントローラ内の変数を、テンプレートで読み込む
コントローラ内と、テンプレート内で、@がつく変数が共有される
class SayController < ApplicationController def hello @time = Time.now end end
<html> <head> <title>はろー</title> </head> <body> 現在時刻は:<%= @time %> </body> <html>
リンクによる複数ページの連携
<html> <head> <title>はろー</title> </head> <body> 現在時刻は:<%= @time %><br> <!-- sayコントローラのgoodbyeに移動 --> <%= link_to "帰る", :action=> "goodbye" %> </body> <html>
今日はここまでー