mirror of
https://github.com/rails/rails.git
synced 2022-11-09 12:12:34 -05:00
Merge branch 'master' of github.com:rails/docrails
Conflicts: guides/source/4_1_release_notes.md
This commit is contained in:
commit
70ff31d69f
8 changed files with 37 additions and 22 deletions
|
@ -102,7 +102,7 @@ Example:
|
|||
)
|
||||
|
||||
if email.has_attachments?
|
||||
email.attachments.each do |attachment|
|
||||
email.attachments.each do |attachment|
|
||||
page.attachments.create({
|
||||
file: attachment, description: email.subject
|
||||
})
|
||||
|
|
|
@ -94,7 +94,7 @@ module ActionMailer
|
|||
# Hi <%= @account.name %>,
|
||||
# Thanks for joining our service! Please check back often.
|
||||
#
|
||||
# You can even use Action Pack helpers in these views. For example:
|
||||
# You can even use Action View helpers in these views. For example:
|
||||
#
|
||||
# You got a new note!
|
||||
# <%= truncate(@note.body, length: 25) %>
|
||||
|
|
|
@ -74,7 +74,7 @@ module ActionDispatch
|
|||
#
|
||||
# domain: nil # Does not sets cookie domain. (default)
|
||||
# domain: :all # Allow the cookie for the top most level
|
||||
# domain and subdomains.
|
||||
# # domain and subdomains.
|
||||
#
|
||||
# * <tt>:expires</tt> - The time at which this cookie expires, as a \Time object.
|
||||
# * <tt>:secure</tt> - Whether this cookie is only transmitted to HTTPS servers.
|
||||
|
|
|
@ -42,7 +42,8 @@ module ActionView
|
|||
# For example, a key +user_id+ would render as <tt>data-user-id</tt> and
|
||||
# thus accessed as <tt>dataset.userId</tt>.
|
||||
#
|
||||
# Values are encoded to JSON, with the exception of strings and symbols.
|
||||
# Values are encoded to JSON, with the exception of strings, symbols and
|
||||
# BigDecimals.
|
||||
# This may come in handy when using jQuery's HTML5-aware <tt>.data()</tt>
|
||||
# from 1.4.3.
|
||||
#
|
||||
|
@ -56,6 +57,9 @@ module ActionView
|
|||
# tag("input", type: 'text', disabled: true)
|
||||
# # => <input type="text" disabled="disabled" />
|
||||
#
|
||||
# tag("input", type: 'text', class: ["strong", "highlight"])
|
||||
# # => <input class="strong highlight" type="text" />
|
||||
#
|
||||
# tag("img", src: "open & shut.png")
|
||||
# # => <img src="open & shut.png" />
|
||||
#
|
||||
|
@ -75,7 +79,7 @@ module ActionView
|
|||
# Set escape to false to disable attribute value escaping.
|
||||
#
|
||||
# ==== Options
|
||||
# The +options+ hash is used with attributes with no value like (<tt>disabled</tt> and
|
||||
# The +options+ hash can be used with attributes with no value like (<tt>disabled</tt> and
|
||||
# <tt>readonly</tt>), which you can give a value of true in the +options+ hash. You can use
|
||||
# symbols or strings for the attribute names.
|
||||
#
|
||||
|
@ -84,6 +88,8 @@ module ActionView
|
|||
# # => <p>Hello world!</p>
|
||||
# content_tag(:div, content_tag(:p, "Hello world!"), class: "strong")
|
||||
# # => <div class="strong"><p>Hello world!</p></div>
|
||||
# content_tag(:div, "Hello world!", class: ["strong", "highlight"])
|
||||
# # => <div class="strong highlight">Hello world!</div>
|
||||
# content_tag("select", options, multiple: true)
|
||||
# # => <select multiple="multiple">...options...</select>
|
||||
#
|
||||
|
|
|
@ -11,7 +11,7 @@ module ActiveRecord
|
|||
end
|
||||
|
||||
module ClassMethods
|
||||
# Returns a scope for the model without the +default_scope+.
|
||||
# Returns a scope for the model without the previously set scopes.
|
||||
#
|
||||
# class Post < ActiveRecord::Base
|
||||
# def self.default_scope
|
||||
|
@ -19,11 +19,12 @@ module ActiveRecord
|
|||
# end
|
||||
# end
|
||||
#
|
||||
# Post.all # Fires "SELECT * FROM posts WHERE published = true"
|
||||
# Post.unscoped.all # Fires "SELECT * FROM posts"
|
||||
# Post.all # Fires "SELECT * FROM posts WHERE published = true"
|
||||
# Post.unscoped.all # Fires "SELECT * FROM posts"
|
||||
# Post.where(published: false).unscoped.all # Fires "SELECT * FROM posts"
|
||||
#
|
||||
# This method also accepts a block. All queries inside the block will
|
||||
# not use the +default_scope+:
|
||||
# not use the previously set scopes.
|
||||
#
|
||||
# Post.unscoped {
|
||||
# Post.limit(10) # Fires "SELECT * FROM posts LIMIT 10"
|
||||
|
|
|
@ -457,10 +457,10 @@ for detailed changes.
|
|||
|
||||
### Notable changes
|
||||
|
||||
* Default scopes are no longer overriden by chained conditions.
|
||||
* Default scopes are no longer overridden by chained conditions.
|
||||
|
||||
Before this change when you defined a `default_scope` in a model
|
||||
it was overriden by chained conditions in the same field. Now it
|
||||
it was overridden by chained conditions in the same field. Now it
|
||||
is merged like any other scope. [More Details](upgrading_ruby_on_rails.html#changes-on-default-scopes).
|
||||
|
||||
* Added `ActiveRecord::Base.to_param` for convenient "pretty" URLs derived from
|
||||
|
@ -547,13 +547,12 @@ for detailed changes.
|
|||
([Pull Request](https://github.com/rails/rails/pull/13350))
|
||||
|
||||
* Make `change_column_null`
|
||||
revertable. ([Commit](https://github.com/rails/rails/commit/724509a9d5322ff502aefa90dd282ba33a281a96))
|
||||
revertible. ([Commit](https://github.com/rails/rails/commit/724509a9d5322ff502aefa90dd282ba33a281a96))
|
||||
|
||||
* Added a flag to disable schema dump after migration. This is set to `false`
|
||||
by default in the production environment for new applications.
|
||||
([Pull Request](https://github.com/rails/rails/pull/13948))
|
||||
|
||||
|
||||
Active Model
|
||||
------------
|
||||
|
||||
|
|
|
@ -157,9 +157,9 @@ Active Support provides `duplicable?` to programmatically query an object about
|
|||
|
||||
```ruby
|
||||
"foo".duplicable? # => true
|
||||
"".duplicable? # => true
|
||||
"".duplicable? # => true
|
||||
0.0.duplicable? # => false
|
||||
false.duplicable? # => false
|
||||
false.duplicable? # => false
|
||||
```
|
||||
|
||||
By definition all objects are `duplicable?` except `nil`, `false`, `true`, symbols, numbers, class, and module objects.
|
||||
|
@ -2719,11 +2719,14 @@ The method `transform_keys` accepts a block and returns a hash that has applied
|
|||
# => {"" => nil, "A" => :a, "1" => 1}
|
||||
```
|
||||
|
||||
The result in case of collision is undefined:
|
||||
In case of key collision, one of the values will be chosen. The chosen value may not always be the same given the same hash:
|
||||
|
||||
```ruby
|
||||
{"a" => 1, a: 2}.transform_keys { |key| key.to_s.upcase }
|
||||
# => {"A" => 2}, in my test, can't rely on this result though
|
||||
# The result could either be
|
||||
# => {"A"=>2}
|
||||
# or
|
||||
# => {"A"=>1}
|
||||
```
|
||||
|
||||
This method may be useful for example to build specialized conversions. For instance `stringify_keys` and `symbolize_keys` use `transform_keys` to perform their key conversions:
|
||||
|
@ -2758,11 +2761,14 @@ The method `stringify_keys` returns a hash that has a stringified version of the
|
|||
# => {"" => nil, "a" => :a, "1" => 1}
|
||||
```
|
||||
|
||||
The result in case of collision is undefined:
|
||||
In case of key collision, one of the values will be chosen. The chosen value may not always be the same given the same hash:
|
||||
|
||||
```ruby
|
||||
{"a" => 1, a: 2}.stringify_keys
|
||||
# => {"a" => 2}, in my test, can't rely on this result though
|
||||
# The result could either be
|
||||
# => {"a"=>2}
|
||||
# or
|
||||
# => {"a"=>1}
|
||||
```
|
||||
|
||||
This method may be useful for example to easily accept both symbols and strings as options. For instance `ActionView::Helpers::FormHelper` defines:
|
||||
|
@ -2799,11 +2805,14 @@ The method `symbolize_keys` returns a hash that has a symbolized version of the
|
|||
|
||||
WARNING. Note in the previous example only one key was symbolized.
|
||||
|
||||
The result in case of collision is undefined:
|
||||
In case of key collision, one of the values will be chosen. The chosen value may not always be the same given the same hash:
|
||||
|
||||
```ruby
|
||||
{"a" => 1, a: 2}.symbolize_keys
|
||||
# => {:a=>2}, in my test, can't rely on this result though
|
||||
# The result could either be
|
||||
# => {:a=>2}
|
||||
# or
|
||||
# => {:a=>1}
|
||||
```
|
||||
|
||||
This method may be useful for example to easily accept both symbols and strings as options. For instance `ActionController::UrlRewriter` defines
|
||||
|
|
|
@ -939,4 +939,4 @@ ActiveRecord::ConnectionTimeoutError - could not obtain a database connection wi
|
|||
If you get the above error, you might want to increase the size of connection
|
||||
pool by incrementing the `pool` option in `database.yml`
|
||||
|
||||
NOTE. As Rails is multi-threaded by default, there could be a chance that several threads may be accessing multiple connections simultaneously. So depending on your current request load, you could very well have multiple threads contending for a limited amount of connections.
|
||||
NOTE. If you are running in a multi-threaded environment, there could be a chance that several threads may be accessing multiple connections simultaneously. So depending on your current request load, you could very well have multiple threads contending for a limited amount of connections.
|
||||
|
|
Loading…
Reference in a new issue