📜  Ruby on Rails 2.1-迁移(1)

📅  最后修改于: 2023-12-03 15:34:45.479000             🧑  作者: Mango

Ruby on Rails 2.1-迁移

在 Ruby on Rails 2.1 版本中,有一些主要的变化需要注意,如果你需要使用旧版应用程序的代码,或者正在进行迁移,则需要注意这些变化。本文将介绍这些变化及其影响。

改动的注意事项

在进行版本迁移时,需要注意以下几点:

  1. Ruby on Rails 2.1 版本需要 Ruby 1.8.6 或更高版本。
  2. 配置文件 config/environments/production.rb 现在更加易于理解,并提供了详尽的注释。
  3. 会话数据默认现在存储在数据库中,而不是在 Cookie 中。
  4. 安全机制发生了变化,现在使用 token_authenticity 和远程表单。这些变化使得跨站脚本攻击更加困难。
  5. 存在一些变化,关于模板和部件之间的命名冲突的问题。为了解决这个问题,现在使用了命名空间。
数据库变化

在版本迁移时,需要特别注意数据库变化,这些变化主要包括:

  1. belongs_toreferences 的默认值现在是 NULL
  2. has_many :through 现在默认使用 JOIN 而不是 LEFT OUTER JOIN
  3. :conditions 现在必须包含列名前缀,以防止命名冲突。示例::conditions => ["users.name = ?", name]
命名空间

在 Ruby on Rails 2.1 版本中,为了避免模板和部件之间的命名冲突,使用了命名空间。命名空间可用于组织模块,类和常量,类似于文件系统中的目录。

例如,以下代码展示了如何在命名空间中定义控制器类:

class Admin::UsersController < ApplicationController
  def index
    @users = User.all
  end
end

在上面的示例中,Admin 是命名空间,它将 UsersController 类包含在其中。

结论

Ruby on Rails 2.1 版本带来了一些重要的变化,需要注意这些变化并了解它们的影响。 特别要注意数据库变化和命名空间的使用,这些变化对应用程序中的代码可能会有重大影响。