icon 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

头两个,是分离原本 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)