同志们,我们已经无限接近目标,解脱指日可待。一旦我们解决了这一版本中的那些可恨的 Bug,神话般的 1.0 版本现在注定将成为下一个版本。因此,我们需要所有男男女女和孩子努力工作,对这个最终的候选版本进行彻底的测试。升级您的应用程序,启动新的应用程序,踢轮胎,发动引擎,做完所有工作!
那么新的内容是什么?其中有什么内容让它值得在 1.0 版本而非今天升级?很多!通常,这不仅仅被视为高于 0.0.1 的增量。我们得到了许多内容,尤其是针对 Active Record 和 Rails 基础架构的。
新命令
Active Record:find_or_create_by_X、关联集合扩展、所有数据库的迁移
我们添加了一个新的动态查找器,可让您根据传递的属性查找或创建新记录,例如,说出 Tag.find_or_create_by_name(“Summer”)。它甚至适用于关联,因此 page.tags.find_or_create_by_name(“Summer”) 也是合法的。
关联集合的扩展是一种通过代理添加方法的性感新方式,所有访问者都委托代理。示例
class Account < ActiveRecord::Base
has_many :people do
def find_or_create_by_name(name)
first_name, *last_name = name.split
last_name = last_name.join " "
find_or_create_by_first_name_and_last_name(first_name, last_name)
end
end
end
person = Account.find(:first).people.find_or_create_by_name("David Heinemeier Hansson")
person.first_name # => "David"
person.last_name # => "Heinemeier Hansson"
最后,我们为所有商业数据库适配器添加了迁移支持,从而真正为数据库适配器注入了活力。而且特别为SQL Server 做出了大量改进。
Action Pack:更好的筛选控制、修复的 ActiveRecordStore 和 redirect_to:back
Action Controller 现在拥有 skip_before_filter 和 skip_after_filter,可绕过超类中设置的某些筛选,这些筛选不适用于当前控制器。例如,在 ApplicationController 中指定:authenticate,但在 SignupController 中跳过它。
ActiveRecordStore 不再仅在发生更改时保存,因此您现在可以再次依赖每次页面视图时增量 updated_at,并依赖它进行垃圾回收。
最后,我们现在有了使用 redirect_to:back 便捷地表示“返回您来时的位置” 的方法。
从 0.14.x 升级
如果您使用的是 0.14.x 系列,那么升级到最新最好的版本从未如此简单。只需安装最新的 gem 即可免费获得几乎全部内容,其余内容可通过运行以下两个命令获得
rake update_javascripts
rake add_new_scripts
我会让您了解它们的作用。
从 0.13.x(或更早版本)升级
Jeremy Kemper 制定了一份出色的 早期版本升级指南。
还有什么新内容?
和往常一样,你可以通过查看变更日志了解所有即兴播报的更改故事。多么精彩的睡前读物。