2015/05/26分のコミットです。
CHANGELOGにのったコミットは以下の通りです。
- deprecate
Relation#uniq
useRelation#distinct
instead. - add
extend
option onhas_and_belongs_to_many
.
Fixed the grammatical mistake in the sentence [ci skip]
rails guideのContributing to Ruby on Rails
の修正です。
What about Feature Requests?
の項のグラマーの修正を行っています。
Use memoization while accessing request headers for minimizing memory usage
actionpack/lib/action_dispatch/http/request.rb
の修正です。
headers
メソッドで、メソッド内で作成したHttp::Headers
クラスの情報をメモ化するよう修正しています。
Merge pull request #16938 from akshay-vishnoi/remove-deprication
ActiveSupportの修正です。
deprecateになっていたClass#superclass_delegating_accessor
を削除しています。今後はClass#class_attribute
を使用して下さい、との事です。
Remove redundant 'like' from doc of slice! method [ci skip]
activesupport/lib/active_support/multibyte/chars.rb
のdocの修正です。
slice!
メソッドのdoc内に不要なlike
があったのを修正しています。
deprecate Relation#uniq
use Relation#distinct
instead.
ActiveRecordの修正です。
Relation#uniq
メソッドがdeprecateになりました。今後はRelation#distinct
メソッドの方だけを使用するように、との事です。
元々Relation#uniq
メソッドをRelation#distinct
に 名前を変更しよう という提案があったのですが、当時は互換性等の事を考慮して、Relation#distinct
メソッドを追加、に留めたようのですが、Railsのバージョンも挙がったので、改めて削除の方で動いたようです。因みにArray#uniq
とRelation#uniq
が似ており、混乱しやすい為、というのが理由のようです。
activerecord/test/cases/relation/mutation_test.rb
の修正です。
uniq!
メソッドを使用した際にdeprecateメッセージが表示される事を確認するテストから、使用していない変数を削除しています。
add extend
option on has_and_belongs_to_many
.
activerecord/lib/active_record/associations.rb
の修正です。
has_and_belongs_to_many
associationsに:extend
オプションを渡せるよう修正しています。
:extend
オプションは、association objectに追加したいmodule等を指定する為のオプションで、has_many
association等には以前から指定可能だったのですが、has_and_belongs_to_many
では使えなかったんですねえ。
例。
class DeveloperWithExtendOption < Developer module NamedExtension def category 'sns' end end has_and_belongs_to_many :projects, extend: NamedExtension end eponine = DeveloperWithExtendOption.create(name: 'Eponine') eponine.projects.category => 'sns'
Add info on default layout functionality 3.2 >> 4.0 upgrade
rails guideのA Guide for Upgrading Ruby on Rails
の修正です。
3.2 -> 4.0での変更点の一覧に、指定したレイアウトファイルが見つからなかった時のlayout
メソッドの戻り値の変更について追記しています。