第2回 新規アプリケーションの作成
Rails 2.0 がインストールできましたので、早速、新規アプリケーションを作ってみましょう。
> rails sample
コンソールに次のように表示されて、アプリケーションが作成されました。
create
create app/controllers
create app/helpers
create app/models
(中略)
create log/production.log
create log/development.log
create log/test.log
一見すると Rails 1.2.x の時と変わっていないようですが、script/breakpointer がなくなって、以下のディレクトリとファイルが増えています。
- config/initializers/inflections.rb
- config/initializers/mime_types.rb
- public/422.html
最初の2つは、もともと config/environment.rb に書かれていた記述を分離したものですね。422.html は何でしょうか。HTTP ステータスコード 422 の場合に表示するページであることは分かりますが、私が知らないコードです。Wikipedia で調べると、その正体は「422: Unprocessable Entity」で「WebDAVの拡張ステータスコード」と説明があります。よく分かりませんね。。そこで、ファイル 422.html 自体を開いてみると、次のようなメッセージを表示するようになっています。
<h1>The change you wanted was rejected.</h1> <p>Maybe you tried to change something you didn't have access to.</p>
ユーザーがデータベースの内容を変更しようとしたが権限がなくて拒否されたときに表示されるページでしょうかね。しかし、Rails の CHANGELOG にはこんな風に書いてあります:
Added a default 422.html page to be rendered when ActiveRecord::RecordInvalid, ActiveRecord::RecordNotSaved, or ActionController::InvalidAuthenticityToken is raised [DHH]
どうやら、クロスサイトリクエストフォージェリ(CSRF)対策との関連で追加されたファイルのようです。
これらについては、またの機会に調べることにしましょう。本日はここまで。
(2007/12/16)
記事に関するご質問は、 hermes@oiax.jp までメールでお送りください。
ウェブサイト構築の発注先を検討されているお客様は、ご相談フォームをご利用ください。
- はじめに
- 第1回 インストール (2007/12/15)
- 第2回 新規アプリケーションの作成 (2007/12/16)
- 第3回 SQLite3 (2007/12/21)
- 第4回 テンプレートファイルの拡張子 (2007/12/22)
- 第5回 機能テスト (2008/01/19)
- 第6回 redirect_to と url_for (2008/02/24)
- 第7回 config/initializers ディレクトリ (2008/02/27)
- 第8回 Rails 1.2 の API ドキュメントを作る (2008/03/04)
- 第9回 helper :all (2008/05/05)

