Ruby on Rails 2.0 日記

第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 までメールでお送りください。

ウェブサイト構築の発注先を検討されているお客様は、ご相談フォームをご利用ください。