rails 4.2.0.beta3 → 4.2.0.beta4

Sign up to get free protection for your applications and to get access to all the features.
Files changed (227) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +9 -7
  3. data/guides/output/2_2_release_notes.html +724 -0
  4. data/guides/output/2_3_release_notes.html +870 -0
  5. data/guides/output/3_0_release_notes.html +773 -0
  6. data/guides/output/3_1_release_notes.html +740 -0
  7. data/guides/output/3_2_release_notes.html +797 -0
  8. data/guides/output/4_0_release_notes.html +523 -0
  9. data/guides/output/4_1_release_notes.html +806 -0
  10. data/guides/output/4_2_release_notes.html +728 -0
  11. data/guides/output/Gemfile +6 -0
  12. data/guides/output/_license.html +226 -0
  13. data/guides/output/_welcome.html +233 -0
  14. data/guides/output/action_controller_overview.html +1335 -0
  15. data/guides/output/action_mailer_basics.html +928 -0
  16. data/guides/output/action_view_overview.html +1509 -0
  17. data/guides/output/active_job_basics.html +546 -0
  18. data/guides/output/active_model_basics.html +438 -0
  19. data/guides/output/active_record_basics.html +594 -0
  20. data/guides/output/active_record_callbacks.html +592 -0
  21. data/guides/output/active_record_migrations.html +1123 -0
  22. data/guides/output/active_record_postgresql.html +675 -0
  23. data/guides/output/active_record_querying.html +1796 -0
  24. data/guides/output/active_record_validations.html +1301 -0
  25. data/guides/output/active_support_core_extensions.html +3450 -0
  26. data/guides/output/active_support_instrumentation.html +1121 -0
  27. data/guides/output/api_documentation_guidelines.html +498 -0
  28. data/guides/output/asset_pipeline.html +1167 -0
  29. data/guides/output/association_basics.html +2086 -0
  30. data/guides/output/caching_with_rails.html +553 -0
  31. data/guides/output/command_line.html +791 -0
  32. data/guides/output/configuring.html +1055 -0
  33. data/guides/output/contributing_to_ruby_on_rails.html +657 -0
  34. data/guides/output/credits.html +284 -0
  35. data/guides/output/debugging_rails_applications.html +1014 -0
  36. data/guides/output/development_dependencies_install.html +478 -0
  37. data/guides/output/engines.html +1438 -0
  38. data/guides/output/form_helpers.html +1074 -0
  39. data/guides/output/generators.html +838 -0
  40. data/guides/output/getting_started.html +2092 -0
  41. data/guides/output/i18n.html +1198 -0
  42. data/guides/output/images/akshaysurve.jpg +0 -0
  43. data/guides/output/images/belongs_to.png +0 -0
  44. data/guides/output/images/book_icon.gif +0 -0
  45. data/guides/output/images/bullet.gif +0 -0
  46. data/guides/output/images/chapters_icon.gif +0 -0
  47. data/guides/output/images/check_bullet.gif +0 -0
  48. data/guides/output/images/credits_pic_blank.gif +0 -0
  49. data/guides/output/images/csrf.png +0 -0
  50. data/guides/output/images/edge_badge.png +0 -0
  51. data/guides/output/images/favicon.ico +0 -0
  52. data/guides/output/images/feature_tile.gif +0 -0
  53. data/guides/output/images/footer_tile.gif +0 -0
  54. data/guides/output/images/fxn.png +0 -0
  55. data/guides/output/images/getting_started/article_with_comments.png +0 -0
  56. data/guides/output/images/getting_started/challenge.png +0 -0
  57. data/guides/output/images/getting_started/confirm_dialog.png +0 -0
  58. data/guides/output/images/getting_started/forbidden_attributes_for_new_article.png +0 -0
  59. data/guides/output/images/getting_started/forbidden_attributes_for_new_post.png +0 -0
  60. data/guides/output/images/getting_started/form_with_errors.png +0 -0
  61. data/guides/output/images/getting_started/index_action_with_edit_link.png +0 -0
  62. data/guides/output/images/getting_started/new_article.png +0 -0
  63. data/guides/output/images/getting_started/new_post.png +0 -0
  64. data/guides/output/images/getting_started/post_with_comments.png +0 -0
  65. data/guides/output/images/getting_started/rails_welcome.png +0 -0
  66. data/guides/output/images/getting_started/routing_error_no_controller.png +0 -0
  67. data/guides/output/images/getting_started/routing_error_no_route_matches.png +0 -0
  68. data/guides/output/images/getting_started/show_action_for_articles.png +0 -0
  69. data/guides/output/images/getting_started/show_action_for_posts.png +0 -0
  70. data/guides/output/images/getting_started/template_is_missing_articles_new.png +0 -0
  71. data/guides/output/images/getting_started/template_is_missing_posts_new.png +0 -0
  72. data/guides/output/images/getting_started/undefined_method_post_path.png +0 -0
  73. data/guides/output/images/getting_started/unknown_action_create_for_articles.png +0 -0
  74. data/guides/output/images/getting_started/unknown_action_create_for_posts.png +0 -0
  75. data/guides/output/images/getting_started/unknown_action_new_for_articles.png +0 -0
  76. data/guides/output/images/getting_started/unknown_action_new_for_posts.png +0 -0
  77. data/guides/output/images/grey_bullet.gif +0 -0
  78. data/guides/output/images/habtm.png +0 -0
  79. data/guides/output/images/has_many.png +0 -0
  80. data/guides/output/images/has_many_through.png +0 -0
  81. data/guides/output/images/has_one.png +0 -0
  82. data/guides/output/images/has_one_through.png +0 -0
  83. data/guides/output/images/header_backdrop.png +0 -0
  84. data/guides/output/images/header_tile.gif +0 -0
  85. data/guides/output/images/i18n/demo_html_safe.png +0 -0
  86. data/guides/output/images/i18n/demo_localized_pirate.png +0 -0
  87. data/guides/output/images/i18n/demo_translated_en.png +0 -0
  88. data/guides/output/images/i18n/demo_translated_pirate.png +0 -0
  89. data/guides/output/images/i18n/demo_translation_missing.png +0 -0
  90. data/guides/output/images/i18n/demo_untranslated.png +0 -0
  91. data/guides/output/images/icons/README +5 -0
  92. data/guides/output/images/icons/callouts/1.png +0 -0
  93. data/guides/output/images/icons/callouts/10.png +0 -0
  94. data/guides/output/images/icons/callouts/11.png +0 -0
  95. data/guides/output/images/icons/callouts/12.png +0 -0
  96. data/guides/output/images/icons/callouts/13.png +0 -0
  97. data/guides/output/images/icons/callouts/14.png +0 -0
  98. data/guides/output/images/icons/callouts/15.png +0 -0
  99. data/guides/output/images/icons/callouts/2.png +0 -0
  100. data/guides/output/images/icons/callouts/3.png +0 -0
  101. data/guides/output/images/icons/callouts/4.png +0 -0
  102. data/guides/output/images/icons/callouts/5.png +0 -0
  103. data/guides/output/images/icons/callouts/6.png +0 -0
  104. data/guides/output/images/icons/callouts/7.png +0 -0
  105. data/guides/output/images/icons/callouts/8.png +0 -0
  106. data/guides/output/images/icons/callouts/9.png +0 -0
  107. data/guides/output/images/icons/caution.png +0 -0
  108. data/guides/output/images/icons/example.png +0 -0
  109. data/guides/output/images/icons/home.png +0 -0
  110. data/guides/output/images/icons/important.png +0 -0
  111. data/guides/output/images/icons/next.png +0 -0
  112. data/guides/output/images/icons/note.png +0 -0
  113. data/guides/output/images/icons/prev.png +0 -0
  114. data/guides/output/images/icons/tip.png +0 -0
  115. data/guides/output/images/icons/up.png +0 -0
  116. data/guides/output/images/icons/warning.png +0 -0
  117. data/guides/output/images/nav_arrow.gif +0 -0
  118. data/guides/output/images/oscardelben.jpg +0 -0
  119. data/guides/output/images/polymorphic.png +0 -0
  120. data/guides/output/images/radar.png +0 -0
  121. data/guides/output/images/rails4_features.png +0 -0
  122. data/guides/output/images/rails_guides_kindle_cover.jpg +0 -0
  123. data/guides/output/images/rails_guides_logo.gif +0 -0
  124. data/guides/output/images/rails_logo_remix.gif +0 -0
  125. data/guides/output/images/session_fixation.png +0 -0
  126. data/guides/output/images/tab_grey.gif +0 -0
  127. data/guides/output/images/tab_info.gif +0 -0
  128. data/guides/output/images/tab_note.gif +0 -0
  129. data/guides/output/images/tab_red.gif +0 -0
  130. data/guides/output/images/tab_yellow.gif +0 -0
  131. data/guides/output/images/tab_yellow.png +0 -0
  132. data/guides/output/images/vijaydev.jpg +0 -0
  133. data/guides/output/index.html +354 -0
  134. data/guides/output/initialization.html +876 -0
  135. data/guides/output/javascripts/guides.js +59 -0
  136. data/guides/output/javascripts/jquery.min.js +4 -0
  137. data/guides/output/javascripts/responsive-tables.js +43 -0
  138. data/guides/output/javascripts/syntaxhighlighter/shBrushAS3.js +59 -0
  139. data/guides/output/javascripts/syntaxhighlighter/shBrushAppleScript.js +75 -0
  140. data/guides/output/javascripts/syntaxhighlighter/shBrushBash.js +59 -0
  141. data/guides/output/javascripts/syntaxhighlighter/shBrushCSharp.js +65 -0
  142. data/guides/output/javascripts/syntaxhighlighter/shBrushColdFusion.js +100 -0
  143. data/guides/output/javascripts/syntaxhighlighter/shBrushCpp.js +97 -0
  144. data/guides/output/javascripts/syntaxhighlighter/shBrushCss.js +91 -0
  145. data/guides/output/javascripts/syntaxhighlighter/shBrushDelphi.js +55 -0
  146. data/guides/output/javascripts/syntaxhighlighter/shBrushDiff.js +41 -0
  147. data/guides/output/javascripts/syntaxhighlighter/shBrushErlang.js +52 -0
  148. data/guides/output/javascripts/syntaxhighlighter/shBrushGroovy.js +67 -0
  149. data/guides/output/javascripts/syntaxhighlighter/shBrushJScript.js +52 -0
  150. data/guides/output/javascripts/syntaxhighlighter/shBrushJava.js +57 -0
  151. data/guides/output/javascripts/syntaxhighlighter/shBrushJavaFX.js +58 -0
  152. data/guides/output/javascripts/syntaxhighlighter/shBrushPerl.js +72 -0
  153. data/guides/output/javascripts/syntaxhighlighter/shBrushPhp.js +88 -0
  154. data/guides/output/javascripts/syntaxhighlighter/shBrushPlain.js +33 -0
  155. data/guides/output/javascripts/syntaxhighlighter/shBrushPowerShell.js +74 -0
  156. data/guides/output/javascripts/syntaxhighlighter/shBrushPython.js +64 -0
  157. data/guides/output/javascripts/syntaxhighlighter/shBrushRuby.js +55 -0
  158. data/guides/output/javascripts/syntaxhighlighter/shBrushSass.js +94 -0
  159. data/guides/output/javascripts/syntaxhighlighter/shBrushScala.js +51 -0
  160. data/guides/output/javascripts/syntaxhighlighter/shBrushSql.js +66 -0
  161. data/guides/output/javascripts/syntaxhighlighter/shBrushVb.js +56 -0
  162. data/guides/output/javascripts/syntaxhighlighter/shBrushXml.js +69 -0
  163. data/guides/output/javascripts/syntaxhighlighter/shCore.js +17 -0
  164. data/guides/output/layout.html +448 -0
  165. data/guides/output/layouts_and_rendering.html +1541 -0
  166. data/guides/output/maintenance_policy.html +257 -0
  167. data/guides/output/migrations.html +1360 -0
  168. data/guides/output/nested_model_forms.html +412 -0
  169. data/guides/output/plugins.html +644 -0
  170. data/guides/output/rails_application_templates.html +450 -0
  171. data/guides/output/rails_on_rack.html +547 -0
  172. data/guides/output/routing.html +1631 -0
  173. data/guides/output/ruby_on_rails_guides_guidelines.html +329 -0
  174. data/guides/output/security.html +935 -0
  175. data/guides/output/stylesheets/fixes.css +16 -0
  176. data/guides/output/stylesheets/kindle.css +11 -0
  177. data/guides/output/stylesheets/main.css +713 -0
  178. data/guides/output/stylesheets/print.css +52 -0
  179. data/guides/output/stylesheets/reset.css +43 -0
  180. data/guides/output/stylesheets/responsive-tables.css +50 -0
  181. data/guides/output/stylesheets/style.css +13 -0
  182. data/guides/output/stylesheets/syntaxhighlighter/shCore.css +226 -0
  183. data/guides/output/stylesheets/syntaxhighlighter/shCoreDefault.css +328 -0
  184. data/guides/output/stylesheets/syntaxhighlighter/shCoreDjango.css +331 -0
  185. data/guides/output/stylesheets/syntaxhighlighter/shCoreEclipse.css +339 -0
  186. data/guides/output/stylesheets/syntaxhighlighter/shCoreEmacs.css +324 -0
  187. data/guides/output/stylesheets/syntaxhighlighter/shCoreFadeToGrey.css +328 -0
  188. data/guides/output/stylesheets/syntaxhighlighter/shCoreMDUltra.css +324 -0
  189. data/guides/output/stylesheets/syntaxhighlighter/shCoreMidnight.css +324 -0
  190. data/guides/output/stylesheets/syntaxhighlighter/shCoreRDark.css +324 -0
  191. data/guides/output/stylesheets/syntaxhighlighter/shThemeDefault.css +117 -0
  192. data/guides/output/stylesheets/syntaxhighlighter/shThemeDjango.css +120 -0
  193. data/guides/output/stylesheets/syntaxhighlighter/shThemeEclipse.css +128 -0
  194. data/guides/output/stylesheets/syntaxhighlighter/shThemeEmacs.css +113 -0
  195. data/guides/output/stylesheets/syntaxhighlighter/shThemeFadeToGrey.css +117 -0
  196. data/guides/output/stylesheets/syntaxhighlighter/shThemeMDUltra.css +113 -0
  197. data/guides/output/stylesheets/syntaxhighlighter/shThemeMidnight.css +113 -0
  198. data/guides/output/stylesheets/syntaxhighlighter/shThemeRDark.css +113 -0
  199. data/guides/output/stylesheets/syntaxhighlighter/shThemeRailsGuides.css +116 -0
  200. data/guides/output/testing.html +1350 -0
  201. data/guides/output/upgrading_ruby_on_rails.html +1135 -0
  202. data/guides/output/working_with_javascript_in_rails.html +587 -0
  203. data/guides/source/4_0_release_notes.md +2 -2
  204. data/guides/source/4_2_release_notes.md +9 -2
  205. data/guides/source/action_controller_overview.md +3 -1
  206. data/guides/source/action_mailer_basics.md +1 -2
  207. data/guides/source/active_job_basics.md +25 -2
  208. data/guides/source/active_model_basics.md +350 -19
  209. data/guides/source/active_record_basics.md +2 -2
  210. data/guides/source/active_record_migrations.md +1 -1
  211. data/guides/source/active_record_validations.md +12 -4
  212. data/guides/source/active_support_core_extensions.md +7 -9
  213. data/guides/source/active_support_instrumentation.md +2 -0
  214. data/guides/source/association_basics.md +7 -7
  215. data/guides/source/configuring.md +24 -0
  216. data/guides/source/contributing_to_ruby_on_rails.md +1 -1
  217. data/guides/source/credits.html.erb +1 -1
  218. data/guides/source/documents.yaml +5 -0
  219. data/guides/source/engines.md +2 -2
  220. data/guides/source/form_helpers.md +6 -0
  221. data/guides/source/i18n.md +6 -9
  222. data/guides/source/layouts_and_rendering.md +1 -1
  223. data/guides/source/plugins.md +2 -2
  224. data/guides/source/rails_on_rack.md +4 -0
  225. data/guides/source/testing.md +1 -0
  226. data/guides/source/upgrading_ruby_on_rails.md +5 -5
  227. metadata +227 -27
@@ -31,7 +31,7 @@ Object Relational Mapping system.
31
31
  in his book _Patterns of Enterprise Application Architecture_. In
32
32
  Active Record, objects carry both persistent data and behavior which
33
33
  operates on that data. Active Record takes the opinion that ensuring
34
- data access logic is part of the object will educate users of that
34
+ data access logic as part of the object will educate users of that
35
35
  object on how to write to and read from the database.
36
36
 
37
37
  ### Object Relational Mapping
@@ -116,7 +116,7 @@ to Active Record instances:
116
116
  locking](http://api.rubyonrails.org/classes/ActiveRecord/Locking.html) to
117
117
  a model.
118
118
  * `type` - Specifies that the model uses [Single Table
119
- Inheritance](http://api.rubyonrails.org/classes/ActiveRecord/Base.html#label-Single+table+inheritance).
119
+ Inheritance](http://api.rubyonrails.org/classes/ActiveRecord/Base.html#class-ActiveRecord::Base-label-Single+table+inheritance).
120
120
  * `(association_name)_type` - Stores the type for
121
121
  [polymorphic associations](association_basics.html#polymorphic-associations).
122
122
  * `(table_name)_count` - Used to cache the number of belonging objects on
@@ -466,7 +466,7 @@ add_foreign_key :articles, :authors
466
466
  ```
467
467
 
468
468
  This adds a new foreign key to the `author_id` column of the `articles`
469
- table. The key references the `id` column of the `articles` table. If the
469
+ table. The key references the `id` column of the `authors` table. If the
470
470
  column names can not be derived from the table names, you can use the
471
471
  `:column` and `:primary_key` options.
472
472
 
@@ -361,6 +361,8 @@ class Product < ActiveRecord::Base
361
361
  end
362
362
  ```
363
363
 
364
+ Alternatively, you can require that the specified attribute does _not_ match the regular expression by using the `:without` option.
365
+
364
366
  The default error message is _"is invalid"_.
365
367
 
366
368
  ### `inclusion`
@@ -425,7 +427,7 @@ class Essay < ActiveRecord::Base
425
427
  validates :content, length: {
426
428
  minimum: 300,
427
429
  maximum: 400,
428
- tokenizer: lambda { |str| str.scan(/\w+/) },
430
+ tokenizer: lambda { |str| str.split(/\s+/) },
429
431
  too_short: "must have at least %{count} words",
430
432
  too_long: "must have at most %{count} words"
431
433
  }
@@ -524,9 +526,15 @@ If you validate the presence of an object associated via a `has_one` or
524
526
  `marked_for_destruction?`.
525
527
 
526
528
  Since `false.blank?` is true, if you want to validate the presence of a boolean
527
- field you should use `validates :field_name, inclusion: { in: [true, false] }`.
529
+ field you should use one of the following validations:
528
530
 
529
- The default error message is _"can't be blank"_.
531
+ ```ruby
532
+ validates :boolean_field_name, presence: true
533
+ validates :boolean_field_name, inclusion: { in: [true, false] }
534
+ validates :boolean_field_name, exclusion: { in: [nil] }
535
+ ```
536
+ By using one of these validations, you will ensure the value will NOT be `nil`
537
+ which would result in a `NULL` value in most cases.
530
538
 
531
539
  ### `absence`
532
540
 
@@ -698,7 +706,7 @@ we don't want names and surnames to begin with lower case.
698
706
  ```ruby
699
707
  class Person < ActiveRecord::Base
700
708
  validates_each :name, :surname do |record, attr, value|
701
- record.errors.add(attr, 'must start with upper case') if value =~ /\A[a-z]/
709
+ record.errors.add(attr, 'must start with upper case') if value =~ /\A[[:lower:]]/
702
710
  end
703
711
  end
704
712
  ```
@@ -1833,16 +1833,14 @@ attribute names:
1833
1833
 
1834
1834
  ```ruby
1835
1835
  def full_messages
1836
- full_messages = []
1837
-
1838
- each do |attribute, messages|
1839
- ...
1840
- attr_name = attribute.to_s.gsub('.', '_').humanize
1841
- attr_name = @base.class.human_attribute_name(attribute, default: attr_name)
1842
- ...
1843
- end
1836
+ map { |attribute, message| full_message(attribute, message) }
1837
+ end
1844
1838
 
1845
- full_messages
1839
+ def full_message
1840
+ ...
1841
+ attr_name = attribute.to_s.tr('.', '_').humanize
1842
+ attr_name = @base.class.human_attribute_name(attribute, default: attr_name)
1843
+ ...
1846
1844
  end
1847
1845
  ```
1848
1846
 
@@ -135,7 +135,9 @@ Action Controller
135
135
  | `:format` | html/js/json/xml etc |
136
136
  | `:method` | HTTP request verb |
137
137
  | `:path` | Request path |
138
+ | `:status` | HTTP status code |
138
139
  | `:view_runtime` | Amount spent in view in ms |
140
+ | `:db_runtime` | Amount spent executing database queries in ms |
139
141
 
140
142
  ```ruby
141
143
  {
@@ -756,7 +756,7 @@ class Order < ActiveRecord::Base
756
756
  end
757
757
  ```
758
758
 
759
- Each instance of the order model will have these methods:
759
+ Each instance of the `Order` model will have these methods:
760
760
 
761
761
  ```ruby
762
762
  customer
@@ -1342,16 +1342,16 @@ class Customer < ActiveRecord::Base
1342
1342
  end
1343
1343
  ```
1344
1344
 
1345
- Each instance of the customer model will have these methods:
1345
+ Each instance of the `Customer` model will have these methods:
1346
1346
 
1347
1347
  ```ruby
1348
1348
  orders(force_reload = false)
1349
1349
  orders<<(object, ...)
1350
1350
  orders.delete(object, ...)
1351
1351
  orders.destroy(object, ...)
1352
- orders=objects
1352
+ orders=(objects)
1353
1353
  order_ids
1354
- order_ids=ids
1354
+ order_ids=(ids)
1355
1355
  orders.clear
1356
1356
  orders.empty?
1357
1357
  orders.size
@@ -1831,16 +1831,16 @@ class Part < ActiveRecord::Base
1831
1831
  end
1832
1832
  ```
1833
1833
 
1834
- Each instance of the part model will have these methods:
1834
+ Each instance of the `Part` model will have these methods:
1835
1835
 
1836
1836
  ```ruby
1837
1837
  assemblies(force_reload = false)
1838
1838
  assemblies<<(object, ...)
1839
1839
  assemblies.delete(object, ...)
1840
1840
  assemblies.destroy(object, ...)
1841
- assemblies=objects
1841
+ assemblies=(objects)
1842
1842
  assembly_ids
1843
- assembly_ids=ids
1843
+ assembly_ids=(ids)
1844
1844
  assemblies.clear
1845
1845
  assemblies.empty?
1846
1846
  assemblies.size
@@ -364,6 +364,30 @@ encrypted cookies salt value. Defaults to `'signed encrypted cookie'`.
364
364
  method should be performed on the parameters. See [Security Guide](security.html#unsafe-query-generation)
365
365
  for more information. It defaults to true.
366
366
 
367
+ * `config.action_dispatch.rescue_responses` configures what exceptions are assigned to an HTTP status. It accepts a hash and you can specify pairs of exception/status. By default, this is defined as:
368
+
369
+ ```ruby
370
+ config.action_dispatch.rescue_responses = {
371
+ 'ActionController::RoutingError' => :not_found,
372
+ 'AbstractController::ActionNotFound' => :not_found,
373
+ 'ActionController::MethodNotAllowed' => :method_not_allowed,
374
+ 'ActionController::UnknownHttpMethod' => :method_not_allowed,
375
+ 'ActionController::NotImplemented' => :not_implemented,
376
+ 'ActionController::UnknownFormat' => :not_acceptable,
377
+ 'ActionController::InvalidAuthenticityToken' => :unprocessable_entity,
378
+ 'ActionController::InvalidCrossOriginRequest' => :unprocessable_entity,
379
+ 'ActionDispatch::ParamsParser::ParseError' => :bad_request,
380
+ 'ActionController::BadRequest' => :bad_request,
381
+ 'ActionController::ParameterMissing' => :bad_request,
382
+ 'ActiveRecord::RecordNotFound' => :not_found,
383
+ 'ActiveRecord::StaleObjectError' => :conflict,
384
+ 'ActiveRecord::RecordInvalid' => :unprocessable_entity,
385
+ 'ActiveRecord::RecordNotSaved' => :unprocessable_entity
386
+ }
387
+ ```
388
+
389
+ Any exceptions that are not configured will be mapped to 500 Internal Server Error.
390
+
367
391
  * `ActionDispatch::Callbacks.before` takes a block of code to run before the request.
368
392
 
369
393
  * `ActionDispatch::Callbacks.to_prepare` takes a block to run after `ActionDispatch::Callbacks.before`, but before the request. Runs for every request in `development` mode, but only once for `production` or environments with `cache_classes` set to `true`.
@@ -193,7 +193,7 @@ Now get busy and add/edit code. You're on your branch now, so you can write what
193
193
  * Update the (surrounding) documentation, examples elsewhere, and the guides: whatever is affected by your contribution.
194
194
 
195
195
 
196
- TIP: Changes that are cosmetic in nature and do not add anything substantial to the stability, functionality, or testability of Rails will generally not be accepted.
196
+ TIP: Changes that are cosmetic in nature and do not add anything substantial to the stability, functionality, or testability of Rails will generally not be accepted (read more about [our rationales behind this decision](https://github.com/rails/rails/pull/13771#issuecomment-32746700)).
197
197
 
198
198
  #### Follow the Coding Conventions
199
199
 
@@ -40,7 +40,7 @@ Oscar Del Ben is a software engineer at <a href="http://www.wildfireapp.com/">Wi
40
40
  <% end %>
41
41
 
42
42
  <%= author('Tore Darell', 'toretore') do %>
43
- Tore Darell is an independent developer based in Menton, France who specialises in cruft-free web applications using Ruby, Rails and unobtrusive JavaScript. His home on the Internet is his blog <a href="http://tore.darell.no">Sneaky Abstractions</a>.
43
+ Tore Darell is an independent developer based in Menton, France who specialises in cruft-free web applications using Ruby, Rails and unobtrusive JavaScript. You can follow him on <a href="http://twitter.com/toretore">Twitter</a>.
44
44
  <% end %>
45
45
 
46
46
  <%= author('Jeff Dean', 'zilkey') do %>
@@ -32,6 +32,11 @@
32
32
  name: Active Record Query Interface
33
33
  url: active_record_querying.html
34
34
  description: This guide covers the database query interface provided by Active Record.
35
+ -
36
+ name: Active Model basics
37
+ url: active_model_basics.html
38
+ description: This guide covers the use of model classes without Active Record.
39
+ work_in_progress: true
35
40
  -
36
41
  name: Views
37
42
  documents:
@@ -74,13 +74,13 @@ options as appropriate to the need. For the "blorgh" example, you will need to
74
74
  create a "mountable" engine, running this command in a terminal:
75
75
 
76
76
  ```bash
77
- $ bin/rails plugin new blorgh --mountable
77
+ $ rails plugin new blorgh --mountable
78
78
  ```
79
79
 
80
80
  The full list of options for the plugin generator may be seen by typing:
81
81
 
82
82
  ```bash
83
- $ bin/rails plugin --help
83
+ $ rails plugin --help
84
84
  ```
85
85
 
86
86
  The `--mountable` option tells the generator that you want to create a
@@ -506,6 +506,12 @@ As the name implies, this only generates option tags. To generate a working sele
506
506
  <%= collection_select(:person, :city_id, City.all, :id, :name) %>
507
507
  ```
508
508
 
509
+ As with other helpers, if you were to use the collection_select helper on a form builder scoped to the @person object, the syntax would be:
510
+
511
+ ```erb
512
+ <%= f.collection_select(:city_id, City.all, :id, :name) %>
513
+ ```
514
+
509
515
  To recap, `options_from_collection_for_select` is to `collection_select` what `options_for_select` is to `select`.
510
516
 
511
517
  NOTE: Pairs passed to `options_for_select` should have the name first and the id second, however with `options_from_collection_for_select` the first argument is the value method and the second the text method.
@@ -28,7 +28,7 @@ After reading this guide, you will know:
28
28
 
29
29
  --------------------------------------------------------------------------------
30
30
 
31
- NOTE: The Ruby I18n framework provides you with all necessary means for internationalization/localization of your Rails application. You may, however, use any of various plugins and extensions available, which add additional functionality or features. See the Ruby [I18n Wiki](http://ruby-i18n.org/wiki) for more information.
31
+ NOTE: The Ruby I18n framework provides you with all necessary means for internationalization/localization of your Rails application. You may, also use various gems available to add additional functionality or features. See the [rails-i18n gem](https://github.com/svenfuchs/rails-i18n) for more information.
32
32
 
33
33
  How I18n in Ruby on Rails Works
34
34
  -------------------------------
@@ -101,7 +101,7 @@ This means, that in the `:en` locale, the key _hello_ will map to the _Hello wor
101
101
 
102
102
  The I18n library will use **English** as a **default locale**, i.e. if you don't set a different locale, `:en` will be used for looking up translations.
103
103
 
104
- NOTE: The i18n library takes a **pragmatic approach** to locale keys (after [some discussion](http://groups.google.com/group/rails-i18n/browse_thread/thread/14dede2c7dbe9470/80eec34395f64f3c?hl=en)), including only the _locale_ ("language") part, like `:en`, `:pl`, not the _region_ part, like `:en-US` or `:en-GB`, which are traditionally used for separating "languages" and "regional setting" or "dialects". Many international applications use only the "language" element of a locale such as `:cs`, `:th` or `:es` (for Czech, Thai and Spanish). However, there are also regional differences within different language groups that may be important. For instance, in the `:en-US` locale you would have $ as a currency symbol, while in `:en-GB`, you would have £. Nothing stops you from separating regional and other settings in this way: you just have to provide full "English - United Kingdom" locale in a `:en-GB` dictionary. Various [Rails I18n plugins](http://rails-i18n.org/wiki) such as [Globalize3](https://github.com/globalize/globalize) may help you implement it.
104
+ NOTE: The i18n library takes a **pragmatic approach** to locale keys (after [some discussion](http://groups.google.com/group/rails-i18n/browse_thread/thread/14dede2c7dbe9470/80eec34395f64f3c?hl=en)), including only the _locale_ ("language") part, like `:en`, `:pl`, not the _region_ part, like `:en-US` or `:en-GB`, which are traditionally used for separating "languages" and "regional setting" or "dialects". Many international applications use only the "language" element of a locale such as `:cs`, `:th` or `:es` (for Czech, Thai and Spanish). However, there are also regional differences within different language groups that may be important. For instance, in the `:en-US` locale you would have $ as a currency symbol, while in `:en-GB`, you would have £. Nothing stops you from separating regional and other settings in this way: you just have to provide full "English - United Kingdom" locale in a `:en-GB` dictionary. Few gems such as [Globalize3](https://github.com/globalize/globalize) may help you implement it.
105
105
 
106
106
  The **translations load path** (`I18n.load_path`) is just a Ruby Array of paths to your translation files that will be loaded automatically and available in your application. You can pick whatever directory and translation file naming scheme makes sense for you.
107
107
 
@@ -262,7 +262,7 @@ get '/:locale' => 'dashboard#index'
262
262
 
263
263
  Do take special care about the **order of your routes**, so this route declaration does not "eat" other ones. (You may want to add it directly before the `root :to` declaration.)
264
264
 
265
- NOTE: Have a look at two plugins which simplify working with routes in this way: Sven Fuchs's [routing_filter](https://github.com/svenfuchs/routing-filter/tree/master) and Raul Murciano's [translate_routes](https://github.com/raul/translate_routes/tree/master).
265
+ NOTE: Have a look at various gems which simplify working with routes: [routing_filter](https://github.com/svenfuchs/routing-filter/tree/master), [rails-translate-routes](https://github.com/francesc/rails-translate-routes), [route_translator](https://github.com/enriclluelles/route_translator).
266
266
 
267
267
  ### Setting the Locale from the Client Supplied Information
268
268
 
@@ -288,7 +288,7 @@ private
288
288
  end
289
289
  ```
290
290
 
291
- Of course, in a production environment you would need much more robust code, and could use a plugin such as Iain Hecker's [http_accept_language](https://github.com/iain/http_accept_language/tree/master) or even Rack middleware such as Ryan Tomayko's [locale](https://github.com/rack/rack-contrib/blob/master/lib/rack/contrib/locale.rb).
291
+ Of course, in a production environment you would need much more robust code, and could use a gem such as Iain Hecker's [http_accept_language](https://github.com/iain/http_accept_language/tree/master) or even Rack middleware such as Ryan Tomayko's [locale](https://github.com/rack/rack-contrib/blob/master/lib/rack/contrib/locale.rb).
292
292
 
293
293
  #### Using GeoIP (or Similar) Database
294
294
 
@@ -484,8 +484,6 @@ NOTE: The default locale loading mechanism in Rails does not load locale files i
484
484
 
485
485
  ```
486
486
 
487
- Do check the [Rails i18n Wiki](http://rails-i18n.org/wiki) for list of tools available for managing translations.
488
-
489
487
  Overview of the I18n API Features
490
488
  ---------------------------------
491
489
 
@@ -1052,9 +1050,9 @@ If you find anything missing or wrong in this guide, please file a ticket on our
1052
1050
  Contributing to Rails I18n
1053
1051
  --------------------------
1054
1052
 
1055
- I18n support in Ruby on Rails was introduced in the release 2.2 and is still evolving. The project follows the good Ruby on Rails development tradition of evolving solutions in plugins and real applications first, and only then cherry-picking the best-of-breed of most widely useful features for inclusion in the core.
1053
+ I18n support in Ruby on Rails was introduced in the release 2.2 and is still evolving. The project follows the good Ruby on Rails development tradition of evolving solutions in gems and real applications first, and only then cherry-picking the best-of-breed of most widely useful features for inclusion in the core.
1056
1054
 
1057
- Thus we encourage everybody to experiment with new ideas and features in plugins or other libraries and make them available to the community. (Don't forget to announce your work on our [mailing list](http://groups.google.com/group/rails-i18n!))
1055
+ Thus we encourage everybody to experiment with new ideas and features in gems or other libraries and make them available to the community. (Don't forget to announce your work on our [mailing list](http://groups.google.com/group/rails-i18n!))
1058
1056
 
1059
1057
  If you find your own locale (language) missing from our [example translations data](https://github.com/svenfuchs/rails-i18n/tree/master/rails/locale) repository for Ruby on Rails, please [_fork_](https://github.com/guides/fork-a-project-and-submit-your-modifications) the repository, add your data and send a [pull request](https://github.com/guides/pull-requests).
1060
1058
 
@@ -1062,7 +1060,6 @@ If you find your own locale (language) missing from our [example translations da
1062
1060
  Resources
1063
1061
  ---------
1064
1062
 
1065
- * [rails-i18n.org](http://rails-i18n.org) - Homepage of the rails-i18n project. You can find lots of useful resources on the [wiki](http://rails-i18n.org/wiki).
1066
1063
  * [Google group: rails-i18n](http://groups.google.com/group/rails-i18n) - The project's mailing list.
1067
1064
  * [GitHub: rails-i18n](https://github.com/svenfuchs/rails-i18n/tree/master) - Code repository for the rails-i18n project. Most importantly you can find lots of [example translations](https://github.com/svenfuchs/rails-i18n/tree/master/rails/locale) for Rails that should work for your application in most cases.
1068
1065
  * [GitHub: i18n](https://github.com/svenfuchs/i18n/tree/master) - Code repository for the i18n gem.
@@ -189,7 +189,7 @@ render file: "/u/apps/warehouse_app/current/app/views/products/show"
189
189
 
190
190
  The `:file` option takes an absolute file-system path. Of course, you need to have rights to the view that you're using to render the content.
191
191
 
192
- NOTE: By default, the file is rendered without using the current layout. If you want Rails to put the file into the current layout, you need to add the `layout: true` option.
192
+ NOTE: By default, the file is rendered using the current layout.
193
193
 
194
194
  TIP: If you're running Rails on Microsoft Windows, you should use the `:file` option to render a file, because Windows filenames do not have the same format as Unix filenames.
195
195
 
@@ -39,13 +39,13 @@ to run integration tests using a dummy Rails application. Create your
39
39
  plugin with the command:
40
40
 
41
41
  ```bash
42
- $ bin/rails plugin new yaffle
42
+ $ rails plugin new yaffle
43
43
  ```
44
44
 
45
45
  See usage and options by asking for help:
46
46
 
47
47
  ```bash
48
- $ bin/rails plugin new --help
48
+ $ rails plugin new --help
49
49
  ```
50
50
 
51
51
  Testing Your Newly Generated Plugin
@@ -99,6 +99,10 @@ To find out more about different `rackup` options:
99
99
  $ rackup --help
100
100
  ```
101
101
 
102
+ ### Development and auto-reloading
103
+
104
+ Middlewares are loaded once and are not monitored for changes. You will have to restart the server for changes to be reflected in the running application.
105
+
102
106
  Action Dispatcher Middleware Stack
103
107
  ----------------------------------
104
108
 
@@ -797,6 +797,7 @@ when you initiate a Rails project.
797
797
  | `rake test:functionals` | Runs all the functional tests from `test/controllers`, `test/mailers`, and `test/functional` |
798
798
  | `rake test:helpers` | Runs all the helper tests from `test/helpers` |
799
799
  | `rake test:integration` | Runs all the integration tests from `test/integration` |
800
+ | `rake test:jobs` | Runs all the job tests from `test/jobs` |
800
801
  | `rake test:mailers` | Runs all the mailer tests from `test/mailers` |
801
802
  | `rake test:models` | Runs all the model tests from `test/models` |
802
803
  | `rake test:units` | Runs all the unit tests from `test/models`, `test/helpers`, and `test/unit` |
@@ -28,7 +28,7 @@ TIP: Ruby 1.8.7 p248 and p249 have marshaling bugs that crash Rails. Ruby Enterp
28
28
 
29
29
  Rails provides the `rails:update` rake task. After updating the Rails version
30
30
  in the Gemfile, run this rake task.
31
- This will help you with the creation of new files and changes of old files in a
31
+ This will help you with the creation of new files and changes of old files in an
32
32
  interactive session.
33
33
 
34
34
  ```bash
@@ -111,7 +111,7 @@ Record callbacks.
111
111
 
112
112
  When you define a `after_rollback` or `after_commit` callback, you
113
113
  will receive a deprecation warning about this upcoming change. When
114
- you are ready, you can opt into the new behvaior and remove the
114
+ you are ready, you can opt into the new behavior and remove the
115
115
  deprecation warning by adding following configuration to your
116
116
  `config/application.rb`:
117
117
 
@@ -177,7 +177,7 @@ after_bundle do
177
177
  end
178
178
  ```
179
179
 
180
- ### Rails Html Sanitizer
180
+ ### Rails HTML Sanitizer
181
181
 
182
182
  There's a new choice for sanitizing HTML fragments in your applications. The
183
183
  venerable html-scanner approach is now officially being deprecated in favor of
@@ -200,15 +200,15 @@ Read the [gem's readme](https://github.com/rails/rails-html-sanitizer) for more
200
200
  The documentation for `PermitScrubber` and `TargetScrubber` explains how you
201
201
  can gain complete control over when and how elements should be stripped.
202
202
 
203
- If your application needs to old behaviour include `rails-deprecated_sanitizer` in your Gemfile:
203
+ If your application needs to use the old sanitizer implementation, include `rails-deprecated_sanitizer` in your Gemfile:
204
204
 
205
205
  ```ruby
206
206
  gem 'rails-deprecated_sanitizer'
207
207
  ```
208
208
 
209
209
  ### Rails DOM Testing
210
+ The [`TagAssertions` module](http://api.rubyonrails.org/classes/ActionDispatch/Assertions/TagAssertions.html) (containing methods such as `assert_tag`), [has been deprecated](https://github.com/rails/rails/blob/6061472b8c310158a2a2e8e9a6b81a1aef6b60fe/actionpack/lib/action_dispatch/testing/assertions/dom.rb) in favor of the `assert_select` methods from the `SelectorAssertions` module, which has been extracted into the [rails-dom-testing gem](https://github.com/rails/rails-dom-testing).
210
211
 
211
- TODO: Mention https://github.com/rails/rails/commit/4e97d7585a2f4788b9eed98c6cdaf4bb6f2cf5ce
212
212
 
213
213
  Upgrading from Rails 4.0 to Rails 4.1
214
214
  -------------------------------------
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rails
3
3
  version: !ruby/object:Gem::Version
4
- version: 4.2.0.beta3
4
+ version: 4.2.0.beta4
5
5
  platform: ruby
6
6
  authors:
7
7
  - David Heinemeier Hansson
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-10-29 00:00:00.000000000 Z
11
+ date: 2014-10-30 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activesupport
@@ -16,144 +16,144 @@ dependencies:
16
16
  requirements:
17
17
  - - '='
18
18
  - !ruby/object:Gem::Version
19
- version: 4.2.0.beta3
19
+ version: 4.2.0.beta4
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
24
  - - '='
25
25
  - !ruby/object:Gem::Version
26
- version: 4.2.0.beta3
26
+ version: 4.2.0.beta4
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: actionpack
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
31
  - - '='
32
32
  - !ruby/object:Gem::Version
33
- version: 4.2.0.beta3
33
+ version: 4.2.0.beta4
34
34
  type: :runtime
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
38
  - - '='
39
39
  - !ruby/object:Gem::Version
40
- version: 4.2.0.beta3
40
+ version: 4.2.0.beta4
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: actionview
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
45
  - - '='
46
46
  - !ruby/object:Gem::Version
47
- version: 4.2.0.beta3
47
+ version: 4.2.0.beta4
48
48
  type: :runtime
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
52
  - - '='
53
53
  - !ruby/object:Gem::Version
54
- version: 4.2.0.beta3
54
+ version: 4.2.0.beta4
55
55
  - !ruby/object:Gem::Dependency
56
56
  name: activemodel
57
57
  requirement: !ruby/object:Gem::Requirement
58
58
  requirements:
59
59
  - - '='
60
60
  - !ruby/object:Gem::Version
61
- version: 4.2.0.beta3
61
+ version: 4.2.0.beta4
62
62
  type: :runtime
63
63
  prerelease: false
64
64
  version_requirements: !ruby/object:Gem::Requirement
65
65
  requirements:
66
66
  - - '='
67
67
  - !ruby/object:Gem::Version
68
- version: 4.2.0.beta3
68
+ version: 4.2.0.beta4
69
69
  - !ruby/object:Gem::Dependency
70
70
  name: activerecord
71
71
  requirement: !ruby/object:Gem::Requirement
72
72
  requirements:
73
73
  - - '='
74
74
  - !ruby/object:Gem::Version
75
- version: 4.2.0.beta3
75
+ version: 4.2.0.beta4
76
76
  type: :runtime
77
77
  prerelease: false
78
78
  version_requirements: !ruby/object:Gem::Requirement
79
79
  requirements:
80
80
  - - '='
81
81
  - !ruby/object:Gem::Version
82
- version: 4.2.0.beta3
82
+ version: 4.2.0.beta4
83
83
  - !ruby/object:Gem::Dependency
84
84
  name: actionmailer
85
85
  requirement: !ruby/object:Gem::Requirement
86
86
  requirements:
87
87
  - - '='
88
88
  - !ruby/object:Gem::Version
89
- version: 4.2.0.beta3
89
+ version: 4.2.0.beta4
90
90
  type: :runtime
91
91
  prerelease: false
92
92
  version_requirements: !ruby/object:Gem::Requirement
93
93
  requirements:
94
94
  - - '='
95
95
  - !ruby/object:Gem::Version
96
- version: 4.2.0.beta3
96
+ version: 4.2.0.beta4
97
97
  - !ruby/object:Gem::Dependency
98
98
  name: activejob
99
99
  requirement: !ruby/object:Gem::Requirement
100
100
  requirements:
101
101
  - - '='
102
102
  - !ruby/object:Gem::Version
103
- version: 4.2.0.beta3
103
+ version: 4.2.0.beta4
104
104
  type: :runtime
105
105
  prerelease: false
106
106
  version_requirements: !ruby/object:Gem::Requirement
107
107
  requirements:
108
108
  - - '='
109
109
  - !ruby/object:Gem::Version
110
- version: 4.2.0.beta3
110
+ version: 4.2.0.beta4
111
111
  - !ruby/object:Gem::Dependency
112
112
  name: railties
113
113
  requirement: !ruby/object:Gem::Requirement
114
114
  requirements:
115
115
  - - '='
116
116
  - !ruby/object:Gem::Version
117
- version: 4.2.0.beta3
117
+ version: 4.2.0.beta4
118
118
  type: :runtime
119
119
  prerelease: false
120
120
  version_requirements: !ruby/object:Gem::Requirement
121
121
  requirements:
122
122
  - - '='
123
123
  - !ruby/object:Gem::Version
124
- version: 4.2.0.beta3
124
+ version: 4.2.0.beta4
125
125
  - !ruby/object:Gem::Dependency
126
126
  name: bundler
127
127
  requirement: !ruby/object:Gem::Requirement
128
128
  requirements:
129
- - - ">="
129
+ - - '>='
130
130
  - !ruby/object:Gem::Version
131
131
  version: 1.3.0
132
- - - "<"
132
+ - - <
133
133
  - !ruby/object:Gem::Version
134
134
  version: '2.0'
135
135
  type: :runtime
136
136
  prerelease: false
137
137
  version_requirements: !ruby/object:Gem::Requirement
138
138
  requirements:
139
- - - ">="
139
+ - - '>='
140
140
  - !ruby/object:Gem::Version
141
141
  version: 1.3.0
142
- - - "<"
142
+ - - <
143
143
  - !ruby/object:Gem::Version
144
144
  version: '2.0'
145
145
  - !ruby/object:Gem::Dependency
146
146
  name: sprockets-rails
147
147
  requirement: !ruby/object:Gem::Requirement
148
148
  requirements:
149
- - - "~>"
149
+ - - ~>
150
150
  - !ruby/object:Gem::Version
151
151
  version: 3.0.0.beta1
152
152
  type: :runtime
153
153
  prerelease: false
154
154
  version_requirements: !ruby/object:Gem::Requirement
155
155
  requirements:
156
- - - "~>"
156
+ - - ~>
157
157
  - !ruby/object:Gem::Version
158
158
  version: 3.0.0.beta1
159
159
  description: Ruby on Rails is a full-stack web framework optimized for programmer
@@ -308,6 +308,206 @@ files:
308
308
  - guides/bug_report_templates/action_controller_master.rb
309
309
  - guides/bug_report_templates/active_record_gem.rb
310
310
  - guides/bug_report_templates/active_record_master.rb
311
+ - guides/output/2_2_release_notes.html
312
+ - guides/output/2_3_release_notes.html
313
+ - guides/output/3_0_release_notes.html
314
+ - guides/output/3_1_release_notes.html
315
+ - guides/output/3_2_release_notes.html
316
+ - guides/output/4_0_release_notes.html
317
+ - guides/output/4_1_release_notes.html
318
+ - guides/output/4_2_release_notes.html
319
+ - guides/output/Gemfile
320
+ - guides/output/_license.html
321
+ - guides/output/_welcome.html
322
+ - guides/output/action_controller_overview.html
323
+ - guides/output/action_mailer_basics.html
324
+ - guides/output/action_view_overview.html
325
+ - guides/output/active_job_basics.html
326
+ - guides/output/active_model_basics.html
327
+ - guides/output/active_record_basics.html
328
+ - guides/output/active_record_callbacks.html
329
+ - guides/output/active_record_migrations.html
330
+ - guides/output/active_record_postgresql.html
331
+ - guides/output/active_record_querying.html
332
+ - guides/output/active_record_validations.html
333
+ - guides/output/active_support_core_extensions.html
334
+ - guides/output/active_support_instrumentation.html
335
+ - guides/output/api_documentation_guidelines.html
336
+ - guides/output/asset_pipeline.html
337
+ - guides/output/association_basics.html
338
+ - guides/output/caching_with_rails.html
339
+ - guides/output/command_line.html
340
+ - guides/output/configuring.html
341
+ - guides/output/contributing_to_ruby_on_rails.html
342
+ - guides/output/credits.html
343
+ - guides/output/debugging_rails_applications.html
344
+ - guides/output/development_dependencies_install.html
345
+ - guides/output/engines.html
346
+ - guides/output/form_helpers.html
347
+ - guides/output/generators.html
348
+ - guides/output/getting_started.html
349
+ - guides/output/i18n.html
350
+ - guides/output/images/akshaysurve.jpg
351
+ - guides/output/images/belongs_to.png
352
+ - guides/output/images/book_icon.gif
353
+ - guides/output/images/bullet.gif
354
+ - guides/output/images/chapters_icon.gif
355
+ - guides/output/images/check_bullet.gif
356
+ - guides/output/images/credits_pic_blank.gif
357
+ - guides/output/images/csrf.png
358
+ - guides/output/images/edge_badge.png
359
+ - guides/output/images/favicon.ico
360
+ - guides/output/images/feature_tile.gif
361
+ - guides/output/images/footer_tile.gif
362
+ - guides/output/images/fxn.png
363
+ - guides/output/images/getting_started/article_with_comments.png
364
+ - guides/output/images/getting_started/challenge.png
365
+ - guides/output/images/getting_started/confirm_dialog.png
366
+ - guides/output/images/getting_started/forbidden_attributes_for_new_article.png
367
+ - guides/output/images/getting_started/forbidden_attributes_for_new_post.png
368
+ - guides/output/images/getting_started/form_with_errors.png
369
+ - guides/output/images/getting_started/index_action_with_edit_link.png
370
+ - guides/output/images/getting_started/new_article.png
371
+ - guides/output/images/getting_started/new_post.png
372
+ - guides/output/images/getting_started/post_with_comments.png
373
+ - guides/output/images/getting_started/rails_welcome.png
374
+ - guides/output/images/getting_started/routing_error_no_controller.png
375
+ - guides/output/images/getting_started/routing_error_no_route_matches.png
376
+ - guides/output/images/getting_started/show_action_for_articles.png
377
+ - guides/output/images/getting_started/show_action_for_posts.png
378
+ - guides/output/images/getting_started/template_is_missing_articles_new.png
379
+ - guides/output/images/getting_started/template_is_missing_posts_new.png
380
+ - guides/output/images/getting_started/undefined_method_post_path.png
381
+ - guides/output/images/getting_started/unknown_action_create_for_articles.png
382
+ - guides/output/images/getting_started/unknown_action_create_for_posts.png
383
+ - guides/output/images/getting_started/unknown_action_new_for_articles.png
384
+ - guides/output/images/getting_started/unknown_action_new_for_posts.png
385
+ - guides/output/images/grey_bullet.gif
386
+ - guides/output/images/habtm.png
387
+ - guides/output/images/has_many.png
388
+ - guides/output/images/has_many_through.png
389
+ - guides/output/images/has_one.png
390
+ - guides/output/images/has_one_through.png
391
+ - guides/output/images/header_backdrop.png
392
+ - guides/output/images/header_tile.gif
393
+ - guides/output/images/i18n/demo_html_safe.png
394
+ - guides/output/images/i18n/demo_localized_pirate.png
395
+ - guides/output/images/i18n/demo_translated_en.png
396
+ - guides/output/images/i18n/demo_translated_pirate.png
397
+ - guides/output/images/i18n/demo_translation_missing.png
398
+ - guides/output/images/i18n/demo_untranslated.png
399
+ - guides/output/images/icons/README
400
+ - guides/output/images/icons/callouts/1.png
401
+ - guides/output/images/icons/callouts/10.png
402
+ - guides/output/images/icons/callouts/11.png
403
+ - guides/output/images/icons/callouts/12.png
404
+ - guides/output/images/icons/callouts/13.png
405
+ - guides/output/images/icons/callouts/14.png
406
+ - guides/output/images/icons/callouts/15.png
407
+ - guides/output/images/icons/callouts/2.png
408
+ - guides/output/images/icons/callouts/3.png
409
+ - guides/output/images/icons/callouts/4.png
410
+ - guides/output/images/icons/callouts/5.png
411
+ - guides/output/images/icons/callouts/6.png
412
+ - guides/output/images/icons/callouts/7.png
413
+ - guides/output/images/icons/callouts/8.png
414
+ - guides/output/images/icons/callouts/9.png
415
+ - guides/output/images/icons/caution.png
416
+ - guides/output/images/icons/example.png
417
+ - guides/output/images/icons/home.png
418
+ - guides/output/images/icons/important.png
419
+ - guides/output/images/icons/next.png
420
+ - guides/output/images/icons/note.png
421
+ - guides/output/images/icons/prev.png
422
+ - guides/output/images/icons/tip.png
423
+ - guides/output/images/icons/up.png
424
+ - guides/output/images/icons/warning.png
425
+ - guides/output/images/nav_arrow.gif
426
+ - guides/output/images/oscardelben.jpg
427
+ - guides/output/images/polymorphic.png
428
+ - guides/output/images/radar.png
429
+ - guides/output/images/rails4_features.png
430
+ - guides/output/images/rails_guides_kindle_cover.jpg
431
+ - guides/output/images/rails_guides_logo.gif
432
+ - guides/output/images/rails_logo_remix.gif
433
+ - guides/output/images/session_fixation.png
434
+ - guides/output/images/tab_grey.gif
435
+ - guides/output/images/tab_info.gif
436
+ - guides/output/images/tab_note.gif
437
+ - guides/output/images/tab_red.gif
438
+ - guides/output/images/tab_yellow.gif
439
+ - guides/output/images/tab_yellow.png
440
+ - guides/output/images/vijaydev.jpg
441
+ - guides/output/index.html
442
+ - guides/output/initialization.html
443
+ - guides/output/javascripts/guides.js
444
+ - guides/output/javascripts/jquery.min.js
445
+ - guides/output/javascripts/responsive-tables.js
446
+ - guides/output/javascripts/syntaxhighlighter/shBrushAS3.js
447
+ - guides/output/javascripts/syntaxhighlighter/shBrushAppleScript.js
448
+ - guides/output/javascripts/syntaxhighlighter/shBrushBash.js
449
+ - guides/output/javascripts/syntaxhighlighter/shBrushCSharp.js
450
+ - guides/output/javascripts/syntaxhighlighter/shBrushColdFusion.js
451
+ - guides/output/javascripts/syntaxhighlighter/shBrushCpp.js
452
+ - guides/output/javascripts/syntaxhighlighter/shBrushCss.js
453
+ - guides/output/javascripts/syntaxhighlighter/shBrushDelphi.js
454
+ - guides/output/javascripts/syntaxhighlighter/shBrushDiff.js
455
+ - guides/output/javascripts/syntaxhighlighter/shBrushErlang.js
456
+ - guides/output/javascripts/syntaxhighlighter/shBrushGroovy.js
457
+ - guides/output/javascripts/syntaxhighlighter/shBrushJScript.js
458
+ - guides/output/javascripts/syntaxhighlighter/shBrushJava.js
459
+ - guides/output/javascripts/syntaxhighlighter/shBrushJavaFX.js
460
+ - guides/output/javascripts/syntaxhighlighter/shBrushPerl.js
461
+ - guides/output/javascripts/syntaxhighlighter/shBrushPhp.js
462
+ - guides/output/javascripts/syntaxhighlighter/shBrushPlain.js
463
+ - guides/output/javascripts/syntaxhighlighter/shBrushPowerShell.js
464
+ - guides/output/javascripts/syntaxhighlighter/shBrushPython.js
465
+ - guides/output/javascripts/syntaxhighlighter/shBrushRuby.js
466
+ - guides/output/javascripts/syntaxhighlighter/shBrushSass.js
467
+ - guides/output/javascripts/syntaxhighlighter/shBrushScala.js
468
+ - guides/output/javascripts/syntaxhighlighter/shBrushSql.js
469
+ - guides/output/javascripts/syntaxhighlighter/shBrushVb.js
470
+ - guides/output/javascripts/syntaxhighlighter/shBrushXml.js
471
+ - guides/output/javascripts/syntaxhighlighter/shCore.js
472
+ - guides/output/layout.html
473
+ - guides/output/layouts_and_rendering.html
474
+ - guides/output/maintenance_policy.html
475
+ - guides/output/migrations.html
476
+ - guides/output/nested_model_forms.html
477
+ - guides/output/plugins.html
478
+ - guides/output/rails_application_templates.html
479
+ - guides/output/rails_on_rack.html
480
+ - guides/output/routing.html
481
+ - guides/output/ruby_on_rails_guides_guidelines.html
482
+ - guides/output/security.html
483
+ - guides/output/stylesheets/fixes.css
484
+ - guides/output/stylesheets/kindle.css
485
+ - guides/output/stylesheets/main.css
486
+ - guides/output/stylesheets/print.css
487
+ - guides/output/stylesheets/reset.css
488
+ - guides/output/stylesheets/responsive-tables.css
489
+ - guides/output/stylesheets/style.css
490
+ - guides/output/stylesheets/syntaxhighlighter/shCore.css
491
+ - guides/output/stylesheets/syntaxhighlighter/shCoreDefault.css
492
+ - guides/output/stylesheets/syntaxhighlighter/shCoreDjango.css
493
+ - guides/output/stylesheets/syntaxhighlighter/shCoreEclipse.css
494
+ - guides/output/stylesheets/syntaxhighlighter/shCoreEmacs.css
495
+ - guides/output/stylesheets/syntaxhighlighter/shCoreFadeToGrey.css
496
+ - guides/output/stylesheets/syntaxhighlighter/shCoreMDUltra.css
497
+ - guides/output/stylesheets/syntaxhighlighter/shCoreMidnight.css
498
+ - guides/output/stylesheets/syntaxhighlighter/shCoreRDark.css
499
+ - guides/output/stylesheets/syntaxhighlighter/shThemeDefault.css
500
+ - guides/output/stylesheets/syntaxhighlighter/shThemeDjango.css
501
+ - guides/output/stylesheets/syntaxhighlighter/shThemeEclipse.css
502
+ - guides/output/stylesheets/syntaxhighlighter/shThemeEmacs.css
503
+ - guides/output/stylesheets/syntaxhighlighter/shThemeFadeToGrey.css
504
+ - guides/output/stylesheets/syntaxhighlighter/shThemeMDUltra.css
505
+ - guides/output/stylesheets/syntaxhighlighter/shThemeMidnight.css
506
+ - guides/output/stylesheets/syntaxhighlighter/shThemeRDark.css
507
+ - guides/output/stylesheets/syntaxhighlighter/shThemeRailsGuides.css
508
+ - guides/output/testing.html
509
+ - guides/output/upgrading_ruby_on_rails.html
510
+ - guides/output/working_with_javascript_in_rails.html
311
511
  - guides/rails_guides.rb
312
512
  - guides/rails_guides/generator.rb
313
513
  - guides/rails_guides/helpers.rb
@@ -387,17 +587,17 @@ require_paths:
387
587
  - lib
388
588
  required_ruby_version: !ruby/object:Gem::Requirement
389
589
  requirements:
390
- - - ">="
590
+ - - '>='
391
591
  - !ruby/object:Gem::Version
392
592
  version: 1.9.3
393
593
  required_rubygems_version: !ruby/object:Gem::Requirement
394
594
  requirements:
395
- - - ">="
595
+ - - '>='
396
596
  - !ruby/object:Gem::Version
397
597
  version: 1.8.11
398
598
  requirements: []
399
599
  rubyforge_project:
400
- rubygems_version: 2.2.2
600
+ rubygems_version: 2.2.1
401
601
  signing_key:
402
602
  specification_version: 4
403
603
  summary: Full-stack web application framework.