Rails 1.0 |
|
2005-12 |
|
|
Ruby 1.8.6 |
|
|
Rails 1.2 |
|
2007-01 |
|
|
REST routes |
|
respond_to/format |
|
ActiveSupport::Multibyte |
|
|
Rails 2 |
|
2007-12 |
|
|
RESTful routes improvements; nested routes |
|
/people/1/edit instead of /people/1;edit |
|
.html.erb instead of .rhtml |
|
t.type :name instead of t.column :name, :type |
|
|
Rails 2.1 |
|
2008-05 |
|
|
Time zones |
|
Gem dependencies (config.gem in environment.rb) |
|
named scopes |
|
record changes |
|
UTC-named migrations |
|
|
Rails 2.2 |
|
2008-11 |
|
|
Ruby 1.8.6, 1.8.7 |
|
Internationalization framework |
|
Thread safety |
|
transactional migrations |
|
vendorized gems |
|
String#chars -> mb_chars |
|
|
Rails 2.3 |
|
2009-03 |
|
|
Ruby 1.8.6, 1.8.7, 1.9.1 |
|
Engines |
|
use Rack middleware, Metal |
|
Nested forms |
|
dynamic & default scopes |
|
|
*Rails 3.0 |
|
2010-08 |
|
|
Ruby 1.8.6, 1.9.2, 1.9.3 |
|
Merb integration |
|
ARel query engine |
|
new router |
|
new action mailer |
|
Bundler |
|
supports jQuery (not only prototype); Data Mapper (not only ActiveRecord) etc |
|
|
Rails 3.1 |
|
2011-08 |
|
|
asset pipeline |
|
HTTP streaming |
|
jQuery as default |
|
reversible migrations |
|
mountable engines |
|
mass-assignment protection |
|
|
Rails 3.2 |
|
2012-01 |
|
|
plugins deprecated |
|
faster dev mode |
|
explain queries |
|
|
Rails 4.0 |
|
2013-06 |
|
|
Ruby 1.9.3, 2.0 |
|
strong parameters |
|
Turbolinks |
|
live streaming |
|
save for threaded servers |
|
|
Rails 4.1 |
|
2014-04 |
|
|
Ruby 1.9.3, 2.0, 2.1 |
|
Spring preloader |
|
Variant templates |
|
Enums |
|
Mailer previews |
|
config/secrets.yml |
|
|
Rails 4.2 |
|
2014-12 |
|
|
Ruby 1.9.3, 2.0, 2.1, 2.2 |
|
Active Job framework |
|
Adequate Record optimizations |
|
Web Console |
|
Foreign key support in migration DSL |
|
|
Rails 5 |
|
2015-… |
|
|
Ruby 2.2.1 |
|
rails command execute rake tasks too |
|
rake test TEST=… -> rails test … |
|
rake restart |
|
Rails API |
|
Turbolinks 3.0 |
|
Action Cable (WebSockets; uses Redis) |
|
Model.where(…).or(Model.where(…)) |
|
belongs_to required by default (=> optional: true) |
|
has_secure_token |
|
alias_method_chain deprecated (-> prepend) |