论坛首页 Ruby版 rails

Rails 2.1 的三个新特性

浏览 435 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
时间:2008-05-13
script/dbconsole

script/dbconsole 脚本允许用户使用Rails的控制台客户端连接到数据库。

如果需要连接到MySQL的生产数据库作一些操作,直接运行 RAILS_ENV=production script/dbconsole 就能登录到数据库服务器上并使用MySQL的命令行客户端。当然,这个脚本也同样在 PostgreSQL 和 SQLite 数据库运行。

要在当前Rails应用程序中使用这个新脚本,就要先升级到edge Rails,再运行 rake rails:update:script 。好好享受这个脚本的便利吧。


ActiveRecord migrations 的新方法 change_table

现在可以通过 change_table 代码块来完成对数据库表的修改。

    change_table :videos do |t|
      t.add_timestamps
      t.add_belongs_to :goat
      t.add_string :name, :email, :limit => 20
      t.remove_column :name, :email # takes multiple arguments
      t.rename :new_name
      t.string :new_string_column # executes against the renamed table name
    end


补充些要注意的事情:

* add_XXX 方法会添加一个新列,比如 add_string 会添加一个新的 string 类型的字段。
* Of course, add_timestamps 会添加神奇的 created_at 和 updated_at 的 datetime 类型的字段。
* remove_column 现在可以接受多个参数。
* rename 方法会重命名数据库表。

Rails2.1新特性之ActiveRecord::Base.create的变化

ActiveRecord::Base.create 现在可以像 ActiveRecord::Base.new 一样带上一个代码块参数了。

    @person = Person.create(params[:person]) do |p|
     p.name = 'Konata Izumi'
     p.age = 17
    end
   
论坛首页 Ruby版 rails

跳转论坛: