rails 4.2.0.beta4 → 4.2.0.rc1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/guides/Rakefile +3 -1
- data/guides/bug_report_templates/action_controller_gem.rb +2 -2
- data/guides/bug_report_templates/action_controller_master.rb +2 -2
- data/guides/source/3_0_release_notes.md +2 -2
- data/guides/source/4_1_release_notes.md +1 -1
- data/guides/source/4_2_release_notes.md +250 -225
- data/guides/source/_welcome.html.erb +1 -1
- data/guides/source/action_controller_overview.md +6 -6
- data/guides/source/action_mailer_basics.md +26 -11
- data/guides/source/action_view_overview.md +0 -1
- data/guides/source/active_job_basics.md +29 -23
- data/guides/source/active_record_postgresql.md +2 -7
- data/guides/source/active_record_validations.md +1 -0
- data/guides/source/active_support_core_extensions.md +1 -1
- data/guides/source/active_support_instrumentation.md +5 -5
- data/guides/source/asset_pipeline.md +2 -2
- data/guides/source/association_basics.md +0 -2
- data/guides/source/command_line.md +6 -15
- data/guides/source/configuring.md +4 -4
- data/guides/source/documents.yaml +0 -1
- data/guides/source/engines.md +26 -15
- data/guides/source/form_helpers.md +10 -2
- data/guides/source/getting_started.md +9 -9
- data/guides/source/rails_on_rack.md +2 -2
- data/guides/source/ruby_on_rails_guides_guidelines.md +1 -0
- data/guides/source/security.md +1 -1
- data/guides/source/testing.md +80 -13
- data/guides/source/upgrading_ruby_on_rails.md +23 -20
- metadata +29 -229
- data/guides/output/2_2_release_notes.html +0 -724
- data/guides/output/2_3_release_notes.html +0 -870
- data/guides/output/3_0_release_notes.html +0 -773
- data/guides/output/3_1_release_notes.html +0 -740
- data/guides/output/3_2_release_notes.html +0 -797
- data/guides/output/4_0_release_notes.html +0 -523
- data/guides/output/4_1_release_notes.html +0 -806
- data/guides/output/4_2_release_notes.html +0 -728
- data/guides/output/Gemfile +0 -6
- data/guides/output/_license.html +0 -226
- data/guides/output/_welcome.html +0 -233
- data/guides/output/action_controller_overview.html +0 -1335
- data/guides/output/action_mailer_basics.html +0 -928
- data/guides/output/action_view_overview.html +0 -1509
- data/guides/output/active_job_basics.html +0 -546
- data/guides/output/active_model_basics.html +0 -438
- data/guides/output/active_record_basics.html +0 -594
- data/guides/output/active_record_callbacks.html +0 -592
- data/guides/output/active_record_migrations.html +0 -1123
- data/guides/output/active_record_postgresql.html +0 -675
- data/guides/output/active_record_querying.html +0 -1796
- data/guides/output/active_record_validations.html +0 -1301
- data/guides/output/active_support_core_extensions.html +0 -3450
- data/guides/output/active_support_instrumentation.html +0 -1121
- data/guides/output/api_documentation_guidelines.html +0 -498
- data/guides/output/asset_pipeline.html +0 -1167
- data/guides/output/association_basics.html +0 -2086
- data/guides/output/caching_with_rails.html +0 -553
- data/guides/output/command_line.html +0 -791
- data/guides/output/configuring.html +0 -1055
- data/guides/output/contributing_to_ruby_on_rails.html +0 -657
- data/guides/output/credits.html +0 -284
- data/guides/output/debugging_rails_applications.html +0 -1014
- data/guides/output/development_dependencies_install.html +0 -478
- data/guides/output/engines.html +0 -1438
- data/guides/output/form_helpers.html +0 -1074
- data/guides/output/generators.html +0 -838
- data/guides/output/getting_started.html +0 -2092
- data/guides/output/i18n.html +0 -1198
- data/guides/output/images/akshaysurve.jpg +0 -0
- data/guides/output/images/belongs_to.png +0 -0
- data/guides/output/images/book_icon.gif +0 -0
- data/guides/output/images/bullet.gif +0 -0
- data/guides/output/images/chapters_icon.gif +0 -0
- data/guides/output/images/check_bullet.gif +0 -0
- data/guides/output/images/credits_pic_blank.gif +0 -0
- data/guides/output/images/csrf.png +0 -0
- data/guides/output/images/edge_badge.png +0 -0
- data/guides/output/images/favicon.ico +0 -0
- data/guides/output/images/feature_tile.gif +0 -0
- data/guides/output/images/footer_tile.gif +0 -0
- data/guides/output/images/fxn.png +0 -0
- data/guides/output/images/getting_started/article_with_comments.png +0 -0
- data/guides/output/images/getting_started/challenge.png +0 -0
- data/guides/output/images/getting_started/confirm_dialog.png +0 -0
- data/guides/output/images/getting_started/forbidden_attributes_for_new_article.png +0 -0
- data/guides/output/images/getting_started/forbidden_attributes_for_new_post.png +0 -0
- data/guides/output/images/getting_started/form_with_errors.png +0 -0
- data/guides/output/images/getting_started/index_action_with_edit_link.png +0 -0
- data/guides/output/images/getting_started/new_article.png +0 -0
- data/guides/output/images/getting_started/new_post.png +0 -0
- data/guides/output/images/getting_started/post_with_comments.png +0 -0
- data/guides/output/images/getting_started/rails_welcome.png +0 -0
- data/guides/output/images/getting_started/routing_error_no_controller.png +0 -0
- data/guides/output/images/getting_started/routing_error_no_route_matches.png +0 -0
- data/guides/output/images/getting_started/show_action_for_articles.png +0 -0
- data/guides/output/images/getting_started/show_action_for_posts.png +0 -0
- data/guides/output/images/getting_started/template_is_missing_articles_new.png +0 -0
- data/guides/output/images/getting_started/template_is_missing_posts_new.png +0 -0
- data/guides/output/images/getting_started/undefined_method_post_path.png +0 -0
- data/guides/output/images/getting_started/unknown_action_create_for_articles.png +0 -0
- data/guides/output/images/getting_started/unknown_action_create_for_posts.png +0 -0
- data/guides/output/images/getting_started/unknown_action_new_for_articles.png +0 -0
- data/guides/output/images/getting_started/unknown_action_new_for_posts.png +0 -0
- data/guides/output/images/grey_bullet.gif +0 -0
- data/guides/output/images/habtm.png +0 -0
- data/guides/output/images/has_many.png +0 -0
- data/guides/output/images/has_many_through.png +0 -0
- data/guides/output/images/has_one.png +0 -0
- data/guides/output/images/has_one_through.png +0 -0
- data/guides/output/images/header_backdrop.png +0 -0
- data/guides/output/images/header_tile.gif +0 -0
- data/guides/output/images/i18n/demo_html_safe.png +0 -0
- data/guides/output/images/i18n/demo_localized_pirate.png +0 -0
- data/guides/output/images/i18n/demo_translated_en.png +0 -0
- data/guides/output/images/i18n/demo_translated_pirate.png +0 -0
- data/guides/output/images/i18n/demo_translation_missing.png +0 -0
- data/guides/output/images/i18n/demo_untranslated.png +0 -0
- data/guides/output/images/icons/README +0 -5
- data/guides/output/images/icons/callouts/1.png +0 -0
- data/guides/output/images/icons/callouts/10.png +0 -0
- data/guides/output/images/icons/callouts/11.png +0 -0
- data/guides/output/images/icons/callouts/12.png +0 -0
- data/guides/output/images/icons/callouts/13.png +0 -0
- data/guides/output/images/icons/callouts/14.png +0 -0
- data/guides/output/images/icons/callouts/15.png +0 -0
- data/guides/output/images/icons/callouts/2.png +0 -0
- data/guides/output/images/icons/callouts/3.png +0 -0
- data/guides/output/images/icons/callouts/4.png +0 -0
- data/guides/output/images/icons/callouts/5.png +0 -0
- data/guides/output/images/icons/callouts/6.png +0 -0
- data/guides/output/images/icons/callouts/7.png +0 -0
- data/guides/output/images/icons/callouts/8.png +0 -0
- data/guides/output/images/icons/callouts/9.png +0 -0
- data/guides/output/images/icons/caution.png +0 -0
- data/guides/output/images/icons/example.png +0 -0
- data/guides/output/images/icons/home.png +0 -0
- data/guides/output/images/icons/important.png +0 -0
- data/guides/output/images/icons/next.png +0 -0
- data/guides/output/images/icons/note.png +0 -0
- data/guides/output/images/icons/prev.png +0 -0
- data/guides/output/images/icons/tip.png +0 -0
- data/guides/output/images/icons/up.png +0 -0
- data/guides/output/images/icons/warning.png +0 -0
- data/guides/output/images/nav_arrow.gif +0 -0
- data/guides/output/images/oscardelben.jpg +0 -0
- data/guides/output/images/polymorphic.png +0 -0
- data/guides/output/images/radar.png +0 -0
- data/guides/output/images/rails4_features.png +0 -0
- data/guides/output/images/rails_guides_kindle_cover.jpg +0 -0
- data/guides/output/images/rails_guides_logo.gif +0 -0
- data/guides/output/images/rails_logo_remix.gif +0 -0
- data/guides/output/images/session_fixation.png +0 -0
- data/guides/output/images/tab_grey.gif +0 -0
- data/guides/output/images/tab_info.gif +0 -0
- data/guides/output/images/tab_note.gif +0 -0
- data/guides/output/images/tab_red.gif +0 -0
- data/guides/output/images/tab_yellow.gif +0 -0
- data/guides/output/images/tab_yellow.png +0 -0
- data/guides/output/images/vijaydev.jpg +0 -0
- data/guides/output/index.html +0 -354
- data/guides/output/initialization.html +0 -876
- data/guides/output/javascripts/guides.js +0 -59
- data/guides/output/javascripts/jquery.min.js +0 -4
- data/guides/output/javascripts/responsive-tables.js +0 -43
- data/guides/output/javascripts/syntaxhighlighter/shBrushAS3.js +0 -59
- data/guides/output/javascripts/syntaxhighlighter/shBrushAppleScript.js +0 -75
- data/guides/output/javascripts/syntaxhighlighter/shBrushBash.js +0 -59
- data/guides/output/javascripts/syntaxhighlighter/shBrushCSharp.js +0 -65
- data/guides/output/javascripts/syntaxhighlighter/shBrushColdFusion.js +0 -100
- data/guides/output/javascripts/syntaxhighlighter/shBrushCpp.js +0 -97
- data/guides/output/javascripts/syntaxhighlighter/shBrushCss.js +0 -91
- data/guides/output/javascripts/syntaxhighlighter/shBrushDelphi.js +0 -55
- data/guides/output/javascripts/syntaxhighlighter/shBrushDiff.js +0 -41
- data/guides/output/javascripts/syntaxhighlighter/shBrushErlang.js +0 -52
- data/guides/output/javascripts/syntaxhighlighter/shBrushGroovy.js +0 -67
- data/guides/output/javascripts/syntaxhighlighter/shBrushJScript.js +0 -52
- data/guides/output/javascripts/syntaxhighlighter/shBrushJava.js +0 -57
- data/guides/output/javascripts/syntaxhighlighter/shBrushJavaFX.js +0 -58
- data/guides/output/javascripts/syntaxhighlighter/shBrushPerl.js +0 -72
- data/guides/output/javascripts/syntaxhighlighter/shBrushPhp.js +0 -88
- data/guides/output/javascripts/syntaxhighlighter/shBrushPlain.js +0 -33
- data/guides/output/javascripts/syntaxhighlighter/shBrushPowerShell.js +0 -74
- data/guides/output/javascripts/syntaxhighlighter/shBrushPython.js +0 -64
- data/guides/output/javascripts/syntaxhighlighter/shBrushRuby.js +0 -55
- data/guides/output/javascripts/syntaxhighlighter/shBrushSass.js +0 -94
- data/guides/output/javascripts/syntaxhighlighter/shBrushScala.js +0 -51
- data/guides/output/javascripts/syntaxhighlighter/shBrushSql.js +0 -66
- data/guides/output/javascripts/syntaxhighlighter/shBrushVb.js +0 -56
- data/guides/output/javascripts/syntaxhighlighter/shBrushXml.js +0 -69
- data/guides/output/javascripts/syntaxhighlighter/shCore.js +0 -17
- data/guides/output/layout.html +0 -448
- data/guides/output/layouts_and_rendering.html +0 -1541
- data/guides/output/maintenance_policy.html +0 -257
- data/guides/output/migrations.html +0 -1360
- data/guides/output/nested_model_forms.html +0 -412
- data/guides/output/plugins.html +0 -644
- data/guides/output/rails_application_templates.html +0 -450
- data/guides/output/rails_on_rack.html +0 -547
- data/guides/output/routing.html +0 -1631
- data/guides/output/ruby_on_rails_guides_guidelines.html +0 -329
- data/guides/output/security.html +0 -935
- data/guides/output/stylesheets/fixes.css +0 -16
- data/guides/output/stylesheets/kindle.css +0 -11
- data/guides/output/stylesheets/main.css +0 -713
- data/guides/output/stylesheets/print.css +0 -52
- data/guides/output/stylesheets/reset.css +0 -43
- data/guides/output/stylesheets/responsive-tables.css +0 -50
- data/guides/output/stylesheets/style.css +0 -13
- data/guides/output/stylesheets/syntaxhighlighter/shCore.css +0 -226
- data/guides/output/stylesheets/syntaxhighlighter/shCoreDefault.css +0 -328
- data/guides/output/stylesheets/syntaxhighlighter/shCoreDjango.css +0 -331
- data/guides/output/stylesheets/syntaxhighlighter/shCoreEclipse.css +0 -339
- data/guides/output/stylesheets/syntaxhighlighter/shCoreEmacs.css +0 -324
- data/guides/output/stylesheets/syntaxhighlighter/shCoreFadeToGrey.css +0 -328
- data/guides/output/stylesheets/syntaxhighlighter/shCoreMDUltra.css +0 -324
- data/guides/output/stylesheets/syntaxhighlighter/shCoreMidnight.css +0 -324
- data/guides/output/stylesheets/syntaxhighlighter/shCoreRDark.css +0 -324
- data/guides/output/stylesheets/syntaxhighlighter/shThemeDefault.css +0 -117
- data/guides/output/stylesheets/syntaxhighlighter/shThemeDjango.css +0 -120
- data/guides/output/stylesheets/syntaxhighlighter/shThemeEclipse.css +0 -128
- data/guides/output/stylesheets/syntaxhighlighter/shThemeEmacs.css +0 -113
- data/guides/output/stylesheets/syntaxhighlighter/shThemeFadeToGrey.css +0 -117
- data/guides/output/stylesheets/syntaxhighlighter/shThemeMDUltra.css +0 -113
- data/guides/output/stylesheets/syntaxhighlighter/shThemeMidnight.css +0 -113
- data/guides/output/stylesheets/syntaxhighlighter/shThemeRDark.css +0 -113
- data/guides/output/stylesheets/syntaxhighlighter/shThemeRailsGuides.css +0 -116
- data/guides/output/testing.html +0 -1350
- data/guides/output/upgrading_ruby_on_rails.html +0 -1135
- data/guides/output/working_with_javascript_in_rails.html +0 -587
@@ -1,728 +0,0 @@
|
|
1
|
-
<!DOCTYPE html>
|
2
|
-
|
3
|
-
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
|
4
|
-
<head>
|
5
|
-
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
|
6
|
-
<meta name="viewport" content="width=device-width, initial-scale=1"/>
|
7
|
-
|
8
|
-
<title>Ruby on Rails 4.2 Release Notes — Ruby on Rails Guides</title>
|
9
|
-
<link rel="stylesheet" type="text/css" href="stylesheets/style.css" />
|
10
|
-
<link rel="stylesheet" type="text/css" href="stylesheets/print.css" media="print" />
|
11
|
-
|
12
|
-
<link rel="stylesheet" type="text/css" href="stylesheets/syntaxhighlighter/shCore.css" />
|
13
|
-
<link rel="stylesheet" type="text/css" href="stylesheets/syntaxhighlighter/shThemeRailsGuides.css" />
|
14
|
-
|
15
|
-
<link rel="stylesheet" type="text/css" href="stylesheets/fixes.css" />
|
16
|
-
|
17
|
-
<link href="images/favicon.ico" rel="shortcut icon" type="image/x-icon" />
|
18
|
-
</head>
|
19
|
-
<body class="guide">
|
20
|
-
<div id="topNav">
|
21
|
-
<div class="wrapper">
|
22
|
-
<strong class="more-info-label">More at <a href="http://rubyonrails.org/">rubyonrails.org:</a> </strong>
|
23
|
-
<span class="red-button more-info-button">
|
24
|
-
More Ruby on Rails
|
25
|
-
</span>
|
26
|
-
<ul class="more-info-links s-hidden">
|
27
|
-
<li class="more-info"><a href="http://rubyonrails.org/">Overview</a></li>
|
28
|
-
<li class="more-info"><a href="http://rubyonrails.org/download">Download</a></li>
|
29
|
-
<li class="more-info"><a href="http://rubyonrails.org/deploy">Deploy</a></li>
|
30
|
-
<li class="more-info"><a href="https://github.com/rails/rails">Code</a></li>
|
31
|
-
<li class="more-info"><a href="http://rubyonrails.org/screencasts">Screencasts</a></li>
|
32
|
-
<li class="more-info"><a href="http://rubyonrails.org/documentation">Documentation</a></li>
|
33
|
-
<li class="more-info"><a href="http://rubyonrails.org/community">Community</a></li>
|
34
|
-
<li class="more-info"><a href="http://weblog.rubyonrails.org/">Blog</a></li>
|
35
|
-
</ul>
|
36
|
-
</div>
|
37
|
-
</div>
|
38
|
-
<div id="header">
|
39
|
-
<div class="wrapper clearfix">
|
40
|
-
<h1><a href="index.html" title="Return to home page">Guides.rubyonrails.org</a></h1>
|
41
|
-
<ul class="nav">
|
42
|
-
<li><a class="nav-item" href="index.html">Home</a></li>
|
43
|
-
<li class="guides-index guides-index-large">
|
44
|
-
<a href="index.html" id="guidesMenu" class="guides-index-item nav-item">Guides Index</a>
|
45
|
-
<div id="guides" class="clearfix" style="display: none;">
|
46
|
-
<hr />
|
47
|
-
<dl class="L">
|
48
|
-
<dt>Start Here</dt>
|
49
|
-
<dd><a href="getting_started.html">Getting Started with Rails</a></dd>
|
50
|
-
<dt>Models</dt>
|
51
|
-
<dd><a href="active_record_basics.html">Active Record Basics</a></dd>
|
52
|
-
<dd><a href="active_record_migrations.html">Active Record Migrations</a></dd>
|
53
|
-
<dd><a href="active_record_validations.html">Active Record Validations</a></dd>
|
54
|
-
<dd><a href="active_record_callbacks.html">Active Record Callbacks</a></dd>
|
55
|
-
<dd><a href="association_basics.html">Active Record Associations</a></dd>
|
56
|
-
<dd><a href="active_record_querying.html">Active Record Query Interface</a></dd>
|
57
|
-
<dt>Views</dt>
|
58
|
-
<dd><a href="layouts_and_rendering.html">Layouts and Rendering in Rails</a></dd>
|
59
|
-
<dd><a href="form_helpers.html">Action View Form Helpers</a></dd>
|
60
|
-
<dt>Controllers</dt>
|
61
|
-
<dd><a href="action_controller_overview.html">Action Controller Overview</a></dd>
|
62
|
-
<dd><a href="routing.html">Rails Routing from the Outside In</a></dd>
|
63
|
-
</dl>
|
64
|
-
<dl class="R">
|
65
|
-
<dt>Digging Deeper</dt>
|
66
|
-
<dd><a href="active_support_core_extensions.html">Active Support Core Extensions</a></dd>
|
67
|
-
<dd><a href="i18n.html">Rails Internationalization API</a></dd>
|
68
|
-
<dd><a href="action_mailer_basics.html">Action Mailer Basics</a></dd>
|
69
|
-
<dd><a href="active_job_basics.html">Active Job Basics</a></dd>
|
70
|
-
<dd><a href="security.html">Securing Rails Applications</a></dd>
|
71
|
-
<dd><a href="debugging_rails_applications.html">Debugging Rails Applications</a></dd>
|
72
|
-
<dd><a href="configuring.html">Configuring Rails Applications</a></dd>
|
73
|
-
<dd><a href="command_line.html">Rails Command Line Tools and Rake Tasks</a></dd>
|
74
|
-
<dd><a href="asset_pipeline.html">Asset Pipeline</a></dd>
|
75
|
-
<dd><a href="working_with_javascript_in_rails.html">Working with JavaScript in Rails</a></dd>
|
76
|
-
<dt>Extending Rails</dt>
|
77
|
-
<dd><a href="rails_on_rack.html">Rails on Rack</a></dd>
|
78
|
-
<dd><a href="generators.html">Creating and Customizing Rails Generators</a></dd>
|
79
|
-
<dt>Contributing to Ruby on Rails</dt>
|
80
|
-
<dd><a href="contributing_to_ruby_on_rails.html">Contributing to Ruby on Rails</a></dd>
|
81
|
-
<dd><a href="api_documentation_guidelines.html">API Documentation Guidelines</a></dd>
|
82
|
-
<dd><a href="ruby_on_rails_guides_guidelines.html">Ruby on Rails Guides Guidelines</a></dd>
|
83
|
-
<dt>Maintenance Policy</dt>
|
84
|
-
<dd><a href="maintenance_policy.html">Maintenance Policy</a></dd>
|
85
|
-
<dt>Release Notes</dt>
|
86
|
-
<dd><a href="upgrading_ruby_on_rails.html">Upgrading Ruby on Rails</a></dd>
|
87
|
-
<dd><a href="4_1_release_notes.html">Ruby on Rails 4.1 Release Notes</a></dd>
|
88
|
-
<dd><a href="4_0_release_notes.html">Ruby on Rails 4.0 Release Notes</a></dd>
|
89
|
-
<dd><a href="3_2_release_notes.html">Ruby on Rails 3.2 Release Notes</a></dd>
|
90
|
-
<dd><a href="3_1_release_notes.html">Ruby on Rails 3.1 Release Notes</a></dd>
|
91
|
-
<dd><a href="3_0_release_notes.html">Ruby on Rails 3.0 Release Notes</a></dd>
|
92
|
-
<dd><a href="2_3_release_notes.html">Ruby on Rails 2.3 Release Notes</a></dd>
|
93
|
-
<dd><a href="2_2_release_notes.html">Ruby on Rails 2.2 Release Notes</a></dd>
|
94
|
-
</dl>
|
95
|
-
</div>
|
96
|
-
</li>
|
97
|
-
<li><a class="nav-item" href="contributing_to_ruby_on_rails.html">Contribute</a></li>
|
98
|
-
<li><a class="nav-item" href="credits.html">Credits</a></li>
|
99
|
-
<li class="guides-index guides-index-small">
|
100
|
-
<select class="guides-index-item nav-item">
|
101
|
-
<option value="index.html">Guides Index</option>
|
102
|
-
<optgroup label="Start Here">
|
103
|
-
<option value="getting_started.html">Getting Started with Rails</option>
|
104
|
-
</optgroup>
|
105
|
-
<optgroup label="Models">
|
106
|
-
<option value="active_record_basics.html">Active Record Basics</option>
|
107
|
-
<option value="active_record_migrations.html">Active Record Migrations</option>
|
108
|
-
<option value="active_record_validations.html">Active Record Validations</option>
|
109
|
-
<option value="active_record_callbacks.html">Active Record Callbacks</option>
|
110
|
-
<option value="association_basics.html">Active Record Associations</option>
|
111
|
-
<option value="active_record_querying.html">Active Record Query Interface</option>
|
112
|
-
</optgroup>
|
113
|
-
<optgroup label="Views">
|
114
|
-
<option value="layouts_and_rendering.html">Layouts and Rendering in Rails</option>
|
115
|
-
<option value="form_helpers.html">Action View Form Helpers</option>
|
116
|
-
</optgroup>
|
117
|
-
<optgroup label="Controllers">
|
118
|
-
<option value="action_controller_overview.html">Action Controller Overview</option>
|
119
|
-
<option value="routing.html">Rails Routing from the Outside In</option>
|
120
|
-
</optgroup>
|
121
|
-
<optgroup label="Digging Deeper">
|
122
|
-
<option value="active_support_core_extensions.html">Active Support Core Extensions</option>
|
123
|
-
<option value="i18n.html">Rails Internationalization API</option>
|
124
|
-
<option value="action_mailer_basics.html">Action Mailer Basics</option>
|
125
|
-
<option value="active_job_basics.html">Active Job Basics</option>
|
126
|
-
<option value="security.html">Securing Rails Applications</option>
|
127
|
-
<option value="debugging_rails_applications.html">Debugging Rails Applications</option>
|
128
|
-
<option value="configuring.html">Configuring Rails Applications</option>
|
129
|
-
<option value="command_line.html">Rails Command Line Tools and Rake Tasks</option>
|
130
|
-
<option value="asset_pipeline.html">Asset Pipeline</option>
|
131
|
-
<option value="working_with_javascript_in_rails.html">Working with JavaScript in Rails</option>
|
132
|
-
</optgroup>
|
133
|
-
<optgroup label="Extending Rails">
|
134
|
-
<option value="rails_on_rack.html">Rails on Rack</option>
|
135
|
-
<option value="generators.html">Creating and Customizing Rails Generators</option>
|
136
|
-
</optgroup>
|
137
|
-
<optgroup label="Contributing to Ruby on Rails">
|
138
|
-
<option value="contributing_to_ruby_on_rails.html">Contributing to Ruby on Rails</option>
|
139
|
-
<option value="api_documentation_guidelines.html">API Documentation Guidelines</option>
|
140
|
-
<option value="ruby_on_rails_guides_guidelines.html">Ruby on Rails Guides Guidelines</option>
|
141
|
-
</optgroup>
|
142
|
-
<optgroup label="Maintenance Policy">
|
143
|
-
<option value="maintenance_policy.html">Maintenance Policy</option>
|
144
|
-
</optgroup>
|
145
|
-
<optgroup label="Release Notes">
|
146
|
-
<option value="upgrading_ruby_on_rails.html">Upgrading Ruby on Rails</option>
|
147
|
-
<option value="4_1_release_notes.html">Ruby on Rails 4.1 Release Notes</option>
|
148
|
-
<option value="4_0_release_notes.html">Ruby on Rails 4.0 Release Notes</option>
|
149
|
-
<option value="3_2_release_notes.html">Ruby on Rails 3.2 Release Notes</option>
|
150
|
-
<option value="3_1_release_notes.html">Ruby on Rails 3.1 Release Notes</option>
|
151
|
-
<option value="3_0_release_notes.html">Ruby on Rails 3.0 Release Notes</option>
|
152
|
-
<option value="2_3_release_notes.html">Ruby on Rails 2.3 Release Notes</option>
|
153
|
-
<option value="2_2_release_notes.html">Ruby on Rails 2.2 Release Notes</option>
|
154
|
-
</optgroup>
|
155
|
-
</select>
|
156
|
-
</li>
|
157
|
-
</ul>
|
158
|
-
</div>
|
159
|
-
</div>
|
160
|
-
<hr class="hide" />
|
161
|
-
|
162
|
-
<div id="feature">
|
163
|
-
<div class="wrapper">
|
164
|
-
<h2>Ruby on Rails 4.2 Release Notes</h2><p>Highlights in Rails 4.2:</p>
|
165
|
-
<ul>
|
166
|
-
<li>Active Job, Action Mailer #deliver_later</li>
|
167
|
-
<li>Adequate Record</li>
|
168
|
-
<li>Web Console</li>
|
169
|
-
<li>Foreign key support</li>
|
170
|
-
</ul>
|
171
|
-
<p>These release notes cover only the major changes. To know about various bug
|
172
|
-
fixes and changes, please refer to the change logs or check out the
|
173
|
-
<a href="https://github.com/rails/rails/commits/master">list of commits</a> in the main
|
174
|
-
Rails repository on GitHub.</p>
|
175
|
-
|
176
|
-
<div id="subCol">
|
177
|
-
<h3 class="chapter"><img src="images/chapters_icon.gif" alt="" />Chapters</h3>
|
178
|
-
<ol class="chapters">
|
179
|
-
<li><a href="#upgrading-to-rails-4.2">Upgrading to Rails 4.2</a></li>
|
180
|
-
<li>
|
181
|
-
<a href="#major-features">Major Features</a>
|
182
|
-
|
183
|
-
<ul>
|
184
|
-
<li><a href="#active-job,-action-mailer-#deliver_later">Active Job, Action Mailer #deliver_later</a></li>
|
185
|
-
<li><a href="#adequate-record">Adequate Record</a></li>
|
186
|
-
<li><a href="#web-console">Web Console</a></li>
|
187
|
-
<li><a href="#foreign-key-support">Foreign key support</a></li>
|
188
|
-
</ul>
|
189
|
-
</li>
|
190
|
-
<li>
|
191
|
-
<a href="#railties">Railties</a>
|
192
|
-
|
193
|
-
<ul>
|
194
|
-
<li><a href="#railties-removals">Removals</a></li>
|
195
|
-
<li><a href="#railties-deprecations">Deprecations</a></li>
|
196
|
-
<li><a href="#railties-notable-changes">Notable changes</a></li>
|
197
|
-
</ul>
|
198
|
-
</li>
|
199
|
-
<li>
|
200
|
-
<a href="#action-pack">Action Pack</a>
|
201
|
-
|
202
|
-
<ul>
|
203
|
-
<li><a href="#action-pack-removals">Removals</a></li>
|
204
|
-
<li><a href="#action-pack-deprecations">Deprecations</a></li>
|
205
|
-
<li><a href="#action-pack-notable-changes">Notable changes</a></li>
|
206
|
-
</ul>
|
207
|
-
</li>
|
208
|
-
<li>
|
209
|
-
<a href="#action-view">Action View</a>
|
210
|
-
|
211
|
-
<ul>
|
212
|
-
<li><a href="#action-view-deprecations">Deprecations</a></li>
|
213
|
-
<li><a href="#action-view-notable-changes">Notable changes</a></li>
|
214
|
-
</ul>
|
215
|
-
</li>
|
216
|
-
<li>
|
217
|
-
<a href="#action-mailer">Action Mailer</a>
|
218
|
-
|
219
|
-
<ul>
|
220
|
-
<li><a href="#action-mailer-deprecations">Deprecations</a></li>
|
221
|
-
<li><a href="#action-mailer-notable-changes">Notable changes</a></li>
|
222
|
-
</ul>
|
223
|
-
</li>
|
224
|
-
<li>
|
225
|
-
<a href="#active-record">Active Record</a>
|
226
|
-
|
227
|
-
<ul>
|
228
|
-
<li><a href="#active-record-removals">Removals</a></li>
|
229
|
-
<li><a href="#active-record-deprecations">Deprecations</a></li>
|
230
|
-
<li><a href="#active-record-notable-changes">Notable changes</a></li>
|
231
|
-
</ul>
|
232
|
-
</li>
|
233
|
-
<li>
|
234
|
-
<a href="#active-model">Active Model</a>
|
235
|
-
|
236
|
-
<ul>
|
237
|
-
<li><a href="#active-model-removals">Removals</a></li>
|
238
|
-
<li><a href="#active-model-deprecations">Deprecations</a></li>
|
239
|
-
<li><a href="#active-model-notable-changes">Notable changes</a></li>
|
240
|
-
</ul>
|
241
|
-
</li>
|
242
|
-
<li>
|
243
|
-
<a href="#active-support">Active Support</a>
|
244
|
-
|
245
|
-
<ul>
|
246
|
-
<li><a href="#removals">Removals</a></li>
|
247
|
-
<li><a href="#deprecations">Deprecations</a></li>
|
248
|
-
<li><a href="#notable-changes">Notable changes</a></li>
|
249
|
-
</ul>
|
250
|
-
</li>
|
251
|
-
<li><a href="#credits">Credits</a></li>
|
252
|
-
</ol>
|
253
|
-
|
254
|
-
</div>
|
255
|
-
|
256
|
-
</div>
|
257
|
-
</div>
|
258
|
-
|
259
|
-
<div id="container">
|
260
|
-
<div class="wrapper">
|
261
|
-
<div id="mainCol">
|
262
|
-
<div class="note"><p>This document is a work in progress, please help to improve this by sending
|
263
|
-
a <a href="https://github.com/rails/rails/edit/master/guides/source/upgrading_ruby_on_rails.md">pull request</a>.</p></div><h3 id="upgrading-to-rails-4.2">1 Upgrading to Rails 4.2</h3><p>If you're upgrading an existing application, it's a great idea to have good test
|
264
|
-
coverage before going in. You should also first upgrade to Rails 4.1 in case you
|
265
|
-
haven't and make sure your application still runs as expected before attempting
|
266
|
-
to upgrade to Rails 4.2. A list of things to watch out for when upgrading is
|
267
|
-
available in the
|
268
|
-
<a href="upgrading_ruby_on_rails.html#upgrading-from-rails-4.1-to-rails-4.2">Upgrading Ruby on Rails</a>
|
269
|
-
guide.</p><h3 id="major-features">2 Major Features</h3><h4 id="active-job,-action-mailer-#deliver_later">2.1 Active Job, Action Mailer #deliver_later</h4><p>Active Job is a new framework in Rails 4.2. It is an adapter layer on top of
|
270
|
-
queuing systems like Resque, Delayed Job, Sidekiq, and more. You can write your
|
271
|
-
jobs to Active Job, and it'll run on all these queues with no changes. (It comes
|
272
|
-
pre-configured with an inline runner.)</p><p>Building on top of Active Job, Action Mailer now comes with a #deliver_later
|
273
|
-
method, which adds your email to be sent as a job to a queue, so it doesn't
|
274
|
-
bog down the controller or model.</p><p>The new GlobalID library makes it easy to pass Active Record objects to jobs by
|
275
|
-
serializing them in a generic form. This means you no longer have to manually
|
276
|
-
pack and unpack your Active Records by passing ids. Just give the job the
|
277
|
-
straight Active Record object, and it'll serialize it using GlobalID, and
|
278
|
-
deserialize it at run time.</p><h4 id="adequate-record">2.2 Adequate Record</h4><p>Rails 4.2 comes with a performance improvement feature called Adequate Record
|
279
|
-
for Active Record. A lot of common queries are now up to twice as fast in Rails
|
280
|
-
4.2!</p><div class="todo"><p>add some technical details</p></div><h4 id="web-console">2.3 Web Console</h4><p>New applications generated from Rails 4.2 now comes with the Web Console gem by
|
281
|
-
default.</p><p>Web Console is an IRB console available in the browser. In development mode, you
|
282
|
-
can go to /console and do your work right there. It will also be made available
|
283
|
-
on all exception pages and allows you to jump between the different points in
|
284
|
-
the backtrace.</p><h4 id="foreign-key-support">2.4 Foreign key support</h4><p>The migration DSL now supports adding and removing foreign keys. They are dumped
|
285
|
-
to <code>schema.rb</code> as well. At this time, only the <code>mysql</code>, <code>mysql2</code> and <code>postgresql</code>
|
286
|
-
adapters support foreign keys.</p><div class="code_container">
|
287
|
-
<pre class="brush: ruby; gutter: false; toolbar: false">
|
288
|
-
# add a foreign key to `articles.author_id` referencing `authors.id`
|
289
|
-
add_foreign_key :articles, :authors
|
290
|
-
|
291
|
-
# add a foreign key to `articles.author_id` referencing `users.lng_id`
|
292
|
-
add_foreign_key :articles, :users, column: :author_id, primary_key: "lng_id"
|
293
|
-
|
294
|
-
# remove the foreign key on `accounts.branch_id`
|
295
|
-
remove_foreign_key :accounts, :branches
|
296
|
-
|
297
|
-
# remove the foreign key on `accounts.owner_id`
|
298
|
-
remove_foreign_key :accounts, column: :owner_id
|
299
|
-
|
300
|
-
</pre>
|
301
|
-
</div>
|
302
|
-
<p>See the API documentation on
|
303
|
-
<a href="http://api.rubyonrails.org/v4.2.0/classes/ActiveRecord/ConnectionAdapters/SchemaStatements.html#method-i-add_foreign_key">add_foreign_key</a>
|
304
|
-
and
|
305
|
-
<a href="http://api.rubyonrails.org/v4.2.0/classes/ActiveRecord/ConnectionAdapters/SchemaStatements.html#method-i-remove_foreign_key">remove_foreign_key</a>
|
306
|
-
for a full description.</p><h3 id="railties">3 Railties</h3><p>Please refer to the <a href="https://github.com/rails/rails/blob/4-2-stable/railties/CHANGELOG.md">Changelog</a> for detailed changes.</p><h4 id="railties-removals">3.1 Removals</h4>
|
307
|
-
<ul>
|
308
|
-
<li> The <code>rails application</code> command has been removed without replacement.
|
309
|
-
(<a href="https://github.com/rails/rails/pull/11616">Pull Request</a>)</li>
|
310
|
-
</ul>
|
311
|
-
<h4 id="railties-deprecations">3.2 Deprecations</h4>
|
312
|
-
<ul>
|
313
|
-
<li> Deprecated <code>Rails::Rack::LogTailer</code> without replacement.
|
314
|
-
(<a href="https://github.com/rails/rails/commit/84a13e019e93efaa8994b3f8303d635a7702dbce">Commit</a>)</li>
|
315
|
-
</ul>
|
316
|
-
<h4 id="railties-notable-changes">3.3 Notable changes</h4>
|
317
|
-
<ul>
|
318
|
-
<li><p> Introduced <code>web-console</code> in the default application Gemfile.
|
319
|
-
(<a href="https://github.com/rails/rails/pull/16532">Pull Request</a>)</p></li>
|
320
|
-
<li><p> Added a <code>required</code> option to the model generator for associations.
|
321
|
-
(<a href="https://github.com/rails/rails/pull/16062">Pull Request</a>)</p></li>
|
322
|
-
<li><p> Introduced an <code>after_bundle</code> callback for use in Rails templates.
|
323
|
-
(<a href="https://github.com/rails/rails/pull/16359">Pull Request</a>)</p></li>
|
324
|
-
<li>
|
325
|
-
<p> Introduced the <code>x</code> namespace for defining custom configuration options:</p>
|
326
|
-
<div class="code_container">
|
327
|
-
<pre class="brush: ruby; gutter: false; toolbar: false">
|
328
|
-
# config/environments/production.rb
|
329
|
-
config.x.payment_processing.schedule = :daily
|
330
|
-
config.x.payment_processing.retries = 3
|
331
|
-
config.x.super_debugger = true
|
332
|
-
|
333
|
-
</pre>
|
334
|
-
</div>
|
335
|
-
<p>These options are then available through the configuration object:</p>
|
336
|
-
<div class="code_container">
|
337
|
-
<pre class="brush: ruby; gutter: false; toolbar: false">
|
338
|
-
Rails.configuration.x.payment_processing.schedule # => :daily
|
339
|
-
Rails.configuration.x.payment_processing.retries # => 3
|
340
|
-
Rails.configuration.x.super_debugger # => true
|
341
|
-
|
342
|
-
</pre>
|
343
|
-
</div>
|
344
|
-
<p>(<a href="https://github.com/rails/rails/commit/611849772dd66c2e4d005dcfe153f7ce79a8a7db">Commit</a>)</p>
|
345
|
-
</li>
|
346
|
-
<li>
|
347
|
-
<p> Introduced <code>Rails::Application.config_for</code> to load a configuration for the
|
348
|
-
current environment.</p>
|
349
|
-
<div class="code_container">
|
350
|
-
<pre class="brush: ruby; gutter: false; toolbar: false">
|
351
|
-
# config/exception_notification.yml:
|
352
|
-
production:
|
353
|
-
url: http://127.0.0.1:8080
|
354
|
-
namespace: my_app_production
|
355
|
-
development:
|
356
|
-
url: http://localhost:3001
|
357
|
-
namespace: my_app_development
|
358
|
-
|
359
|
-
# config/production.rb
|
360
|
-
MyApp::Application.configure do
|
361
|
-
config.middleware.use ExceptionNotifier, config_for(:exception_notification)
|
362
|
-
end
|
363
|
-
|
364
|
-
</pre>
|
365
|
-
</div>
|
366
|
-
<p>(<a href="https://github.com/rails/rails/pull/16129">Pull Request</a>)</p>
|
367
|
-
</li>
|
368
|
-
<li><p> Introduced a <code>--skip-gems</code> option in the app generator to skip gems such as
|
369
|
-
<code>turbolinks</code> and <code>coffee-rails</code> that does not have their own specific flags.
|
370
|
-
(<a href="https://github.com/rails/rails/commit/10565895805887d4faf004a6f71219da177f78b7">Commit</a>)</p></li>
|
371
|
-
<li><p> Introduced a <code>bin/setup</code> script to enable automated setup code when
|
372
|
-
bootstrapping an application.
|
373
|
-
(<a href="https://github.com/rails/rails/pull/15189">Pull Request</a>)</p></li>
|
374
|
-
<li><p> Changed default value for <code>config.assets.digest</code> to <code>true</code> in development.
|
375
|
-
(<a href="https://github.com/rails/rails/pull/15155">Pull Request</a>)</p></li>
|
376
|
-
<li><p> Introduced an API to register new extensions for <code>rake notes</code>.
|
377
|
-
(<a href="https://github.com/rails/rails/pull/14379">Pull Request</a>)</p></li>
|
378
|
-
<li><p> Introduced <code>Rails.gem_version</code> as a convenience method to return <code>Gem::Version.new(Rails.version)</code>.
|
379
|
-
(<a href="https://github.com/rails/rails/pull/14101">Pull Request</a>)</p></li>
|
380
|
-
<li><p> Introduced an <code>after_bundle</code> callback in the Rails templates.
|
381
|
-
(<a href="https://github.com/rails/rails/pull/16359">Pull Request</a>)</p></li>
|
382
|
-
</ul>
|
383
|
-
<h3 id="action-pack">4 Action Pack</h3><p>Please refer to the <a href="https://github.com/rails/rails/blob/4-2-stable/actionpack/CHANGELOG.md">Changelog</a> for detailed changes.</p><h4 id="action-pack-removals">4.1 Removals</h4>
|
384
|
-
<ul>
|
385
|
-
<li><p> <code>respond_with</code> and the class-level <code>respond_to</code> were removed from Rails and
|
386
|
-
moved to the <code>responders</code> gem (version 2.0). Add <code>gem 'responders', '~> 2.0'</code>
|
387
|
-
to your <code>Gemfile</code> to continue using these features.
|
388
|
-
(<a href="https://github.com/rails/rails/pull/16526">Pull Request</a>)</p></li>
|
389
|
-
<li><p> Removed deprecated <code>AbstractController::Helpers::ClassMethods::MissingHelperError</code>
|
390
|
-
in favor of <code>AbstractController::Helpers::MissingHelperError</code>.
|
391
|
-
(<a href="https://github.com/rails/rails/commit/a1ddde15ae0d612ff2973de9cf768ed701b594e8">Commit</a>)</p></li>
|
392
|
-
</ul>
|
393
|
-
<h4 id="action-pack-deprecations">4.2 Deprecations</h4>
|
394
|
-
<ul>
|
395
|
-
<li><p> Deprecated <code>assert_tag</code>, <code>assert_no_tag</code>, <code>find_tag</code> and <code>find_all_tag</code> in
|
396
|
-
favor of <code>assert_select</code>.
|
397
|
-
(<a href="https://github.com/rails/rails-dom-testing/commit/b12850bc5ff23ba4b599bf2770874dd4f11bf750">Commit</a>)</p></li>
|
398
|
-
<li>
|
399
|
-
<p> Deprecated support for setting the <code>:to</code> option of a router to a symbol or a
|
400
|
-
string that does not contain a <code>#</code> character:</p>
|
401
|
-
<div class="code_container">
|
402
|
-
<pre class="brush: ruby; gutter: false; toolbar: false">
|
403
|
-
get '/posts', to: MyRackApp => (No change necessary)
|
404
|
-
get '/posts', to: 'post#index' => (No change necessary)
|
405
|
-
get '/posts', to: 'posts' => get '/posts', controller: :posts
|
406
|
-
get '/posts', to: :index => get '/posts', action: :index
|
407
|
-
|
408
|
-
</pre>
|
409
|
-
</div>
|
410
|
-
<p>(<a href="https://github.com/rails/rails/commit/cc26b6b7bccf0eea2e2c1a9ebdcc9d30ca7390d9">Commit</a>)</p>
|
411
|
-
</li>
|
412
|
-
</ul>
|
413
|
-
<h4 id="action-pack-notable-changes">4.3 Notable changes</h4>
|
414
|
-
<ul>
|
415
|
-
<li><p> Rails will now automatically include the template's digest in ETags.
|
416
|
-
(<a href="https://github.com/rails/rails/pull/16527">Pull Request</a>)</p></li>
|
417
|
-
<li><p> <code>render nothing: true</code> or rendering a <code>nil</code> body no longer add a single
|
418
|
-
space padding to the response body.
|
419
|
-
(<a href="https://github.com/rails/rails/pull/14883">Pull Request</a>)</p></li>
|
420
|
-
<li><p> Introduced the <code>always_permitted_parameters</code> option to configure which
|
421
|
-
parameters are permitted globally. The default value of this configuration
|
422
|
-
is <code>['controller', 'action']</code>.
|
423
|
-
(<a href="https://github.com/rails/rails/pull/15933">Pull Request</a>)</p></li>
|
424
|
-
<li>
|
425
|
-
<p> The <code>*_filter</code> family methods have been removed from the documentation. Their
|
426
|
-
usage is discouraged in favor of the <code>*_action</code> family methods:</p>
|
427
|
-
<div class="code_container">
|
428
|
-
<pre class="brush: plain; gutter: false; toolbar: false">
|
429
|
-
after_filter => after_action
|
430
|
-
append_after_filter => append_after_action
|
431
|
-
append_around_filter => append_around_action
|
432
|
-
append_before_filter => append_before_action
|
433
|
-
around_filter => around_action
|
434
|
-
before_filter => before_action
|
435
|
-
prepend_after_filter => prepend_after_action
|
436
|
-
prepend_around_filter => prepend_around_action
|
437
|
-
prepend_before_filter => prepend_before_action
|
438
|
-
skip_after_filter => skip_after_action
|
439
|
-
skip_around_filter => skip_around_action
|
440
|
-
skip_before_filter => skip_before_action
|
441
|
-
skip_filter => skip_action_callback
|
442
|
-
|
443
|
-
</pre>
|
444
|
-
</div>
|
445
|
-
<p>If your application is depending on these methods, you should use the
|
446
|
-
replacement <code>*_action</code> methods instead. These methods will be deprecated in
|
447
|
-
the future and eventually removed from Rails.</p>
|
448
|
-
<p>(Commit <a href="https://github.com/rails/rails/commit/6c5f43bab8206747a8591435b2aa0ff7051ad3de">1</a>,
|
449
|
-
<a href="https://github.com/rails/rails/commit/489a8f2a44dc9cea09154ee1ee2557d1f037c7d4">2</a>)</p>
|
450
|
-
</li>
|
451
|
-
<li><p> Added HTTP method <code>MKCALENDAR</code> from RFC-4791
|
452
|
-
(<a href="https://github.com/rails/rails/pull/15121">Pull Request</a>)</p></li>
|
453
|
-
<li><p> <code>*_fragment.action_controller</code> notifications now include the controller and action name
|
454
|
-
in the payload.
|
455
|
-
(<a href="https://github.com/rails/rails/pull/14137">Pull Request</a>)</p></li>
|
456
|
-
<li><p> Segments that are passed into URL helpers are now automatically escaped.
|
457
|
-
(<a href="https://github.com/rails/rails/commit/5460591f0226a9d248b7b4f89186bd5553e7768f">Commit</a>)</p></li>
|
458
|
-
<li><p> Improved the Routing Error page with fuzzy matching for route search.
|
459
|
-
(<a href="https://github.com/rails/rails/pull/14619">Pull Request</a>)</p></li>
|
460
|
-
<li><p> Added an option to disable logging of CSRF failures.
|
461
|
-
(<a href="https://github.com/rails/rails/pull/14280">Pull Request</a>)</p></li>
|
462
|
-
</ul>
|
463
|
-
<h3 id="action-view">5 Action View</h3><p>Please refer to the <a href="https://github.com/rails/rails/blob/4-2-stable/actionview/CHANGELOG.md">Changelog</a> for detailed changes.</p><h4 id="action-view-deprecations">5.1 Deprecations</h4>
|
464
|
-
<ul>
|
465
|
-
<li><p> Deprecated <code>AbstractController::Base.parent_prefixes</code>.
|
466
|
-
Override <code>AbstractController::Base.local_prefixes</code> when you want to change
|
467
|
-
where to find views.
|
468
|
-
(<a href="https://github.com/rails/rails/pull/15026">Pull Request</a>)</p></li>
|
469
|
-
<li><p> Deprecated <code>ActionView::Digestor#digest(name, format, finder, options = {})</code>.
|
470
|
-
Arguments should be passed as a hash instead.
|
471
|
-
(<a href="https://github.com/rails/rails/pull/14243">Pull Request</a>)</p></li>
|
472
|
-
</ul>
|
473
|
-
<h4 id="action-view-notable-changes">5.2 Notable changes</h4>
|
474
|
-
<ul>
|
475
|
-
<li><p> Introduced a <code>#{partial_name}_iteration</code> special local variable for use with
|
476
|
-
partials that are rendered with a collection. It provides access to the
|
477
|
-
current state of the iteration via the <code>#index</code>, <code>#size</code>, <code>#first?</code> and
|
478
|
-
<code>#last?</code> methods.
|
479
|
-
(<a href="https://github.com/rails/rails/pull/7698">Pull Request</a>)</p></li>
|
480
|
-
<li><p> The form helpers no longer generate a <code><div></code> element with inline CSS around
|
481
|
-
the hidden fields.
|
482
|
-
(<a href="https://github.com/rails/rails/pull/14738">Pull Request</a>)</p></li>
|
483
|
-
</ul>
|
484
|
-
<h3 id="action-mailer">6 Action Mailer</h3><p>Please refer to the <a href="https://github.com/rails/rails/blob/4-2-stable/actionmailer/CHANGELOG.md">Changelog</a> for detailed changes.</p><h4 id="action-mailer-deprecations">6.1 Deprecations</h4>
|
485
|
-
<ul>
|
486
|
-
<li> Deprecated <code>*_path</code> helpers in mailers. Always use <code>*_url</code> helpers instead.
|
487
|
-
(<a href="https://github.com/rails/rails/pull/15840">Pull Request</a>)</li>
|
488
|
-
</ul>
|
489
|
-
<h4 id="action-mailer-notable-changes">6.2 Notable changes</h4>
|
490
|
-
<ul>
|
491
|
-
<li><p> Introduced <code>deliver_later</code> which enqueues a job on the application's queue
|
492
|
-
to deliver the mailer asynchronously.
|
493
|
-
(<a href="https://github.com/rails/rails/pull/16485">Pull Request</a>)</p></li>
|
494
|
-
<li><p> Added the <code>show_previews</code> configuration option for enabling mailer previews
|
495
|
-
outside of the development environment.
|
496
|
-
(<a href="https://github.com/rails/rails/pull/15970">Pull Request</a>)</p></li>
|
497
|
-
</ul>
|
498
|
-
<h3 id="active-record">7 Active Record</h3><p>Please refer to the
|
499
|
-
<a href="https://github.com/rails/rails/blob/4-2-stable/activerecord/CHANGELOG.md">Changelog</a>
|
500
|
-
for detailed changes.</p><h4 id="active-record-removals">7.1 Removals</h4>
|
501
|
-
<ul>
|
502
|
-
<li><p> Removed <code>cache_attributes</code> and friends. All attributes are cached.
|
503
|
-
(<a href="https://github.com/rails/rails/pull/15429">Pull Request</a>)</p></li>
|
504
|
-
<li><p> Removed deprecated method <code>ActiveRecord::Base.quoted_locking_column</code>.
|
505
|
-
(<a href="https://github.com/rails/rails/pull/15612">Pull Request</a>)</p></li>
|
506
|
-
<li><p> Removed deprecated <code>ActiveRecord::Migrator.proper_table_name</code>. Use the
|
507
|
-
<code>proper_table_name</code> instance method on <code>ActiveRecord::Migration</code> instead.
|
508
|
-
(<a href="https://github.com/rails/rails/pull/15512">Pull Request</a>)</p></li>
|
509
|
-
<li><p> Removed unused <code>:timestamp</code> type. Transparently alias it to <code>:datetime</code>
|
510
|
-
in all cases. Fixes inconsistencies when column types are sent outside of
|
511
|
-
<code>ActiveRecord</code>, such as for XML Serialization.
|
512
|
-
(<a href="https://github.com/rails/rails/pull/15184">Pull Request</a>)</p></li>
|
513
|
-
</ul>
|
514
|
-
<h4 id="active-record-deprecations">7.2 Deprecations</h4>
|
515
|
-
<ul>
|
516
|
-
<li><p> Deprecated swallowing of errors inside <code>after_commit</code> and <code>after_rollback</code>.
|
517
|
-
(<a href="https://github.com/rails/rails/pull/16537">Pull Request</a>)</p></li>
|
518
|
-
<li><p> Deprecated calling <code>DatabaseTasks.load_schema</code> without a connection. Use
|
519
|
-
<code>DatabaseTasks.load_schema_current</code> instead.
|
520
|
-
(<a href="https://github.com/rails/rails/commit/f15cef67f75e4b52fd45655d7c6ab6b35623c608">Commit</a>)</p></li>
|
521
|
-
<li><p> Deprecated <code>Reflection#source_macro</code> without replacement as it is no longer
|
522
|
-
needed in Active Record.
|
523
|
-
(<a href="https://github.com/rails/rails/pull/16373">Pull Request</a>)</p></li>
|
524
|
-
<li><p> Deprecated broken support for automatic detection of counter caches on
|
525
|
-
<code>has_many :through</code> associations. You should instead manually specify the
|
526
|
-
counter cache on the <code>has_many</code> and <code>belongs_to</code> associations for the
|
527
|
-
through records.
|
528
|
-
(<a href="https://github.com/rails/rails/pull/15754">Pull Request</a>)</p></li>
|
529
|
-
<li><p> Deprecated <code>serialized_attributes</code> without replacement.
|
530
|
-
(<a href="https://github.com/rails/rails/pull/15704">Pull Request</a>)</p></li>
|
531
|
-
<li><p> Deprecated returning <code>nil</code> from <code>column_for_attribute</code> when no column
|
532
|
-
exists. It will return a null object in Rails 5.0
|
533
|
-
(<a href="https://github.com/rails/rails/pull/15878">Pull Request</a>)</p></li>
|
534
|
-
<li><p> Deprecated using <code>.joins</code>, <code>.preload</code> and <code>.eager_load</code> with associations
|
535
|
-
that depends on the instance state (i.e. those defined with a scope that
|
536
|
-
takes an argument) without replacement.
|
537
|
-
(<a href="https://github.com/rails/rails/commit/ed56e596a0467390011bc9d56d462539776adac1">Commit</a>)</p></li>
|
538
|
-
<li><p> Deprecated passing Active Record objects to <code>.find</code> or <code>.exists?</code>. Call
|
539
|
-
<code>#id</code> on the objects first.
|
540
|
-
(Commit <a href="https://github.com/rails/rails/commit/d92ae6ccca3bcfd73546d612efaea011270bd270">1</a>,
|
541
|
-
<a href="https://github.com/rails/rails/commit/d35f0033c7dec2b8d8b52058fb8db495d49596f7">2</a>)</p></li>
|
542
|
-
<li>
|
543
|
-
<p> Deprecated half-baked support for PostgreSQL range values with excluding
|
544
|
-
beginnings. We currently map PostgreSQL ranges to Ruby ranges. This conversion
|
545
|
-
is not fully possible because the Ruby range does not support excluded
|
546
|
-
beginnings.</p>
|
547
|
-
<p>The current solution of incrementing the beginning is not correct
|
548
|
-
and is now deprecated. For subtypes where we don't know how to increment
|
549
|
-
(e.g. <code>#succ</code> is not defined) it will raise an <code>ArgumentError</code> for ranges
|
550
|
-
with excluding beginnings.</p>
|
551
|
-
<p>(<a href="https://github.com/rails/rails/commit/91949e48cf41af9f3e4ffba3e5eecf9b0a08bfc3">Commit</a>)</p>
|
552
|
-
</li>
|
553
|
-
</ul>
|
554
|
-
<h4 id="active-record-notable-changes">7.3 Notable changes</h4>
|
555
|
-
<ul>
|
556
|
-
<li><p> The PostgreSQL adapter now supports the <code>JSONB</code> datatype in PostgreSQL 9.4+.
|
557
|
-
(<a href="https://github.com/rails/rails/pull/16220">Pull Request</a>)</p></li>
|
558
|
-
<li><p> The <code>#references</code> method in migrations now supports a <code>type</code> option for
|
559
|
-
specifying the type of the foreign key (e.g. <code>:uuid</code>).
|
560
|
-
(<a href="https://github.com/rails/rails/pull/16231">Pull Request</a>)</p></li>
|
561
|
-
<li><p> Added a <code>:required</code> option to singular associations, which defines a
|
562
|
-
presence validation on the association.
|
563
|
-
(<a href="https://github.com/rails/rails/pull/16056">Pull Request</a>)</p></li>
|
564
|
-
<li><p> Introduced <code>ActiveRecord::Base#validate!</code> that raises <code>RecordInvalid</code> if the
|
565
|
-
record is invalid.
|
566
|
-
(<a href="https://github.com/rails/rails/pull/8639">Pull Request</a>)</p></li>
|
567
|
-
<li><p> <code>ActiveRecord::Base#reload</code> now behaves the same as <code>m = Model.find(m.id)</code>,
|
568
|
-
meaning that it no longer retains the extra attributes from custom
|
569
|
-
<code>select</code>s.
|
570
|
-
(<a href="https://github.com/rails/rails/pull/15866">Pull Request</a>)</p></li>
|
571
|
-
<li><p> Introduced the <code>bin/rake db:purge</code> task to empty the database for the
|
572
|
-
current environment.
|
573
|
-
(<a href="https://github.com/rails/rails/commit/e2f232aba15937a4b9d14bd91e0392c6d55be58d">Commit</a>)</p></li>
|
574
|
-
<li><p> <code>ActiveRecord::Dirty</code> now detects in-place changes to mutable values.
|
575
|
-
Serialized attributes on ActiveRecord models will no longer save when
|
576
|
-
unchanged. This also works with other types such as string columns and json
|
577
|
-
columns on PostgreSQL.
|
578
|
-
(Pull Requests <a href="https://github.com/rails/rails/pull/15674">1</a>,
|
579
|
-
<a href="https://github.com/rails/rails/pull/15786">2</a>,
|
580
|
-
<a href="https://github.com/rails/rails/pull/15788">3</a>)</p></li>
|
581
|
-
<li><p> Added support for <code>#pretty_print</code> in <code>ActiveRecord::Base</code> objects.
|
582
|
-
(<a href="https://github.com/rails/rails/pull/15172">Pull Request</a>)</p></li>
|
583
|
-
<li><p> PostgreSQL and SQLite adapters no longer add a default limit of 255
|
584
|
-
characters on string columns.
|
585
|
-
(<a href="https://github.com/rails/rails/pull/14579">Pull Request</a>)</p></li>
|
586
|
-
<li><p> <code>sqlite3:///some/path</code> now resolves to the absolute system path
|
587
|
-
<code>/some/path</code>. For relative paths, use <code>sqlite3:some/path</code> instead.
|
588
|
-
(Previously, <code>sqlite3:///some/path</code> resolved to the relative path
|
589
|
-
<code>some/path</code>. This behaviour was deprecated on Rails 4.1.)
|
590
|
-
(<a href="https://github.com/rails/rails/pull/14569">Pull Request</a>)</p></li>
|
591
|
-
<li><p> Introduced <code>#validate</code> as an alias for <code>#valid?</code>.
|
592
|
-
(<a href="https://github.com/rails/rails/pull/14456">Pull Request</a>)</p></li>
|
593
|
-
<li><p> <code>#touch</code> now accepts multiple attributes to be touched at once.
|
594
|
-
(<a href="https://github.com/rails/rails/pull/14423">Pull Request</a>)</p></li>
|
595
|
-
<li><p> Added support for fractional seconds for MySQL 5.6 and above.
|
596
|
-
(Pull Request <a href="https://github.com/rails/rails/pull/8240">1</a>,
|
597
|
-
<a href="https://github.com/rails/rails/pull/14359">2</a>)</p></li>
|
598
|
-
<li><p> Added support for the <code>citext</code> column type in PostgreSQL adapter.
|
599
|
-
(<a href="https://github.com/rails/rails/pull/12523">Pull Request</a>)</p></li>
|
600
|
-
<li><p> Added support for user-created range types in PostgreSQL adapter.
|
601
|
-
(<a href="https://github.com/rails/rails/commit/4cb47167e747e8f9dc12b0ddaf82bdb68c03e032">Commit</a>)</p></li>
|
602
|
-
</ul>
|
603
|
-
<h3 id="active-model">8 Active Model</h3><p>Please refer to the <a href="https://github.com/rails/rails/blob/4-2-stable/activemodel/CHANGELOG.md">Changelog</a> for detailed changes.</p><h4 id="active-model-removals">8.1 Removals</h4>
|
604
|
-
<ul>
|
605
|
-
<li> Removed deprecated <code>Validator#setup</code> without replacement.
|
606
|
-
(<a href="https://github.com/rails/rails/pull/10716">Pull Request</a>)</li>
|
607
|
-
</ul>
|
608
|
-
<h4 id="active-model-deprecations">8.2 Deprecations</h4>
|
609
|
-
<ul>
|
610
|
-
<li><p> Deprecated reset_#{attribute} in favor of restore_#{attribute}.
|
611
|
-
(<a href="https://github.com/rails/rails/pull/16180">Pull Request</a>)</p></li>
|
612
|
-
<li><p> Deprecated ActiveModel::Dirty#reset_changes in favor of #clear_changes_information.
|
613
|
-
(<a href="https://github.com/rails/rails/pull/16180">Pull Request</a>)</p></li>
|
614
|
-
</ul>
|
615
|
-
<h4 id="active-model-notable-changes">8.3 Notable changes</h4>
|
616
|
-
<ul>
|
617
|
-
<li><p> Introduced the <code>restore_attributes</code> method in <code>ActiveModel::Dirty</code> to restore
|
618
|
-
the changed (dirty) attributes to their previous values.
|
619
|
-
(Pull Request <a href="https://github.com/rails/rails/pull/14861">1</a>, <a href="https://github.com/rails/rails/pull/16180">2</a>)</p></li>
|
620
|
-
<li><p> <code>has_secure_password</code> no longer disallow blank passwords (i.e. passwords
|
621
|
-
that contains only spaces) by default.
|
622
|
-
(<a href="https://github.com/rails/rails/pull/16412">Pull Request</a>)</p></li>
|
623
|
-
<li><p> <code>has_secure_password</code> now verifies that the given password is less than 72
|
624
|
-
characters if validations are enabled.
|
625
|
-
(<a href="https://github.com/rails/rails/pull/15708">Pull Request</a>)</p></li>
|
626
|
-
<li><p> Introduced <code>#validate</code> as an alias for <code>#valid?</code>.
|
627
|
-
(<a href="https://github.com/rails/rails/pull/14456">Pull Request</a>)</p></li>
|
628
|
-
</ul>
|
629
|
-
<h3 id="active-support">9 Active Support</h3><p>Please refer to the <a href="https://github.com/rails/rails/blob/4-2-stable/activesupport/CHANGELOG.md">Changelog</a> for detailed changes.</p><h4 id="removals">9.1 Removals</h4>
|
630
|
-
<ul>
|
631
|
-
<li><p> Removed deprecated <code>Numeric#ago</code>, <code>Numeric#until</code>, <code>Numeric#since</code>,
|
632
|
-
<code>Numeric#from_now</code>.
|
633
|
-
(<a href="https://github.com/rails/rails/commit/f1eddea1e3f6faf93581c43651348f48b2b7d8bb">Commit</a>)</p></li>
|
634
|
-
<li><p> Removed deprecated string based terminators for <code>ActiveSupport::Callbacks</code>.
|
635
|
-
(<a href="https://github.com/rails/rails/pull/15100">Pull Request</a>)</p></li>
|
636
|
-
</ul>
|
637
|
-
<h4 id="deprecations">9.2 Deprecations</h4>
|
638
|
-
<ul>
|
639
|
-
<li><p> Deprecated <code>Kernel#silence_stderr</code>, <code>Kernel#capture</code> and <code>Kernel#quietly</code>
|
640
|
-
without replacement.
|
641
|
-
(<a href="https://github.com/rails/rails/pull/13392">Pull Request</a>)</p></li>
|
642
|
-
<li><p> Deprecated <code>Class#superclass_delegating_accessor</code>, use
|
643
|
-
<code>Class#class_attribute</code> instead.
|
644
|
-
(<a href="https://github.com/rails/rails/pull/14271">Pull Request</a>)</p></li>
|
645
|
-
<li><p> Deprecated <code>ActiveSupport::SafeBuffer#prepend!</code> as
|
646
|
-
<code>ActiveSupport::SafeBuffer#prepend</code> now performs the same function.
|
647
|
-
(<a href="https://github.com/rails/rails/pull/14529">Pull Request</a>)</p></li>
|
648
|
-
</ul>
|
649
|
-
<h4 id="notable-changes">9.3 Notable changes</h4>
|
650
|
-
<ul>
|
651
|
-
<li><p> The <code>travel_to</code> test helper now truncates the <code>usec</code> component to 0.
|
652
|
-
(<a href="https://github.com/rails/rails/commit/9f6e82ee4783e491c20f5244a613fdeb4024beb5">Commit</a>)</p></li>
|
653
|
-
<li><p> <code>ActiveSupport::TestCase</code> now randomizes the order that test cases are ran
|
654
|
-
by default.
|
655
|
-
(<a href="https://github.com/rails/rails/commit/6ffb29d24e05abbd9ffe3ea974140d6c70221807">Commit</a>)</p></li>
|
656
|
-
<li><p> Introduced <code>Object#itself</code> as an identity function.
|
657
|
-
(Commit <a href="https://github.com/rails/rails/commit/702ad710b57bef45b081ebf42e6fa70820fdd810">1</a>,
|
658
|
-
<a href="https://github.com/rails/rails/commit/64d91122222c11ad3918cc8e2e3ebc4b0a03448a">2</a>)</p></li>
|
659
|
-
<li><p> <code>Object#with_options</code> can now be used without an explicit receiver.
|
660
|
-
(<a href="https://github.com/rails/rails/pull/16339">Pull Request</a>)</p></li>
|
661
|
-
<li><p> Introduced <code>String#truncate_words</code> to truncate a string by a number of words.
|
662
|
-
(<a href="https://github.com/rails/rails/pull/16190">Pull Request</a>)</p></li>
|
663
|
-
<li><p> Added <code>Hash#transform_values</code> and <code>Hash#transform_values!</code> to simplify a
|
664
|
-
common pattern where the values of a hash must change, but the keys are left
|
665
|
-
the same.
|
666
|
-
(<a href="https://github.com/rails/rails/pull/15819">Pull Request</a>)</p></li>
|
667
|
-
<li><p> The <code>humanize</code> inflector helper now strips any leading underscores.
|
668
|
-
(<a href="https://github.com/rails/rails/commit/daaa21bc7d20f2e4ff451637423a25ff2d5e75c7">Commit</a>)</p></li>
|
669
|
-
<li><p> Introduced <code>Concern#class_methods</code> as an alternative to
|
670
|
-
<code>module ClassMethods</code>, as well as <code>Kernel#concern</code> to avoid the
|
671
|
-
<code>module Foo; extend ActiveSupport::Concern; end</code> boilerplate.
|
672
|
-
(<a href="https://github.com/rails/rails/commit/b16c36e688970df2f96f793a759365b248b582ad">Commit</a>)</p></li>
|
673
|
-
</ul>
|
674
|
-
<h3 id="credits">10 Credits</h3><p>See the
|
675
|
-
<a href="http://contributors.rubyonrails.org/">full list of contributors to Rails</a> for
|
676
|
-
the many people who spent many hours making Rails the stable and robust
|
677
|
-
framework it is today. Kudos to all of them.</p>
|
678
|
-
|
679
|
-
<h3>Feedback</h3>
|
680
|
-
<p>
|
681
|
-
You're encouraged to help improve the quality of this guide.
|
682
|
-
</p>
|
683
|
-
<p>
|
684
|
-
Please contribute if you see any typos or factual errors.
|
685
|
-
To get started, you can read our <a href="http://edgeguides.rubyonrails.org/contributing_to_ruby_on_rails.html#contributing-to-the-rails-documentation">documentation contributions</a> section.
|
686
|
-
</p>
|
687
|
-
<p>
|
688
|
-
You may also find incomplete content, or stuff that is not up to date.
|
689
|
-
Please do add any missing documentation for master. Make sure to check
|
690
|
-
<a href="http://edgeguides.rubyonrails.org">Edge Guides</a> first to verify
|
691
|
-
if the issues are already fixed or not on the master branch.
|
692
|
-
Check the <a href="ruby_on_rails_guides_guidelines.html">Ruby on Rails Guides Guidelines</a>
|
693
|
-
for style and conventions.
|
694
|
-
</p>
|
695
|
-
<p>
|
696
|
-
If for whatever reason you spot something to fix but cannot patch it yourself, please
|
697
|
-
<a href="https://github.com/rails/rails/issues">open an issue</a>.
|
698
|
-
</p>
|
699
|
-
<p>And last but not least, any kind of discussion regarding Ruby on Rails
|
700
|
-
documentation is very welcome in the <a href="http://groups.google.com/group/rubyonrails-docs">rubyonrails-docs mailing list</a>.
|
701
|
-
</p>
|
702
|
-
</div>
|
703
|
-
</div>
|
704
|
-
</div>
|
705
|
-
|
706
|
-
<hr class="hide" />
|
707
|
-
<div id="footer">
|
708
|
-
<div class="wrapper">
|
709
|
-
<p>This work is licensed under a <a href="https://creativecommons.org/licenses/by-sa/4.0/">Creative Commons Attribution-ShareAlike 4.0 International</a> License</p>
|
710
|
-
<p>"Rails", "Ruby on Rails", and the Rails logo are trademarks of David Heinemeier Hansson. All rights reserved.</p>
|
711
|
-
|
712
|
-
</div>
|
713
|
-
</div>
|
714
|
-
|
715
|
-
<script type="text/javascript" src="javascripts/jquery.min.js"></script>
|
716
|
-
<script type="text/javascript" src="javascripts/responsive-tables.js"></script>
|
717
|
-
<script type="text/javascript" src="javascripts/guides.js"></script>
|
718
|
-
<script type="text/javascript" src="javascripts/syntaxhighlighter/shCore.js"></script>
|
719
|
-
<script type="text/javascript" src="javascripts/syntaxhighlighter/shBrushRuby.js"></script>
|
720
|
-
<script type="text/javascript" src="javascripts/syntaxhighlighter/shBrushXml.js"></script>
|
721
|
-
<script type="text/javascript" src="javascripts/syntaxhighlighter/shBrushSql.js"></script>
|
722
|
-
<script type="text/javascript" src="javascripts/syntaxhighlighter/shBrushPlain.js"></script>
|
723
|
-
<script type="text/javascript">
|
724
|
-
SyntaxHighlighter.all();
|
725
|
-
$(guidesIndex.bind);
|
726
|
-
</script>
|
727
|
-
</body>
|
728
|
-
</html>
|