2020/10/29分のコミットです。
CHANGELOGにのったコミットは以下の通りです。
- Allow double-dash comment syntax when querying read-only databases
- Connections can be granularly switched for abstract classes when
connected_to
is called.
Dash comments should match read query regexp
activerecord/lib/active_record/connection_adapters/abstract_adapter.rb
の修正です。
double-dashコメント(e.g. -- some comment
)をRead-Only Databaseで実行出来るよう修正しています。
Merge pull request #40426 from robin-drexler/fix-crossorigin-preload
actionview/lib/action_view/helpers/asset_tag_helper.rb
の修正です。
crossorigin
attributeが指定されていた場合に、resourcesに渡しているのと同じ値をpreload linkにも含むよう修正しています。
crossorigin
attributeの指定がないとrequest credentials mode が一致せず、prelaodしたresourceが使われなくなってしまう為。
Revert "Remove unused internal methods in ActiveModel::Attributes"
ActiveModel::Attributes
内の使用していないメソッドを削除した、Remove unused internal methods in ActiveModel::AttributesをRevertしています。
内部では使用していないが、public APIの一部な為。
Add test to make sure this method will not be removed again
activemodel/lib/active_model/attributes.rb
、
activemodel/test/cases/attributes_test.rb
の修正です。
write_attribute
、read_attribute
メソッドにdocを追加、及び、それらのメソッドを使用したテストを追加しています。
Merge pull request #40472 from btriller/ar-fix-broken-link
activerecord/lib/active_record/connection_adapters/abstract_mysql_adapter.rb
、
activerecord/lib/active_record/errors.rb
のdocの修正です。
MySQL server errors reference pageへのリンクを修正しています。
Merge pull request #40042 from leequarella/or-unscope-inverse
activerecord/lib/active_record/associations/association.rb
の修正です。
unscoped
、or
でinverse instanceに誤ったinstanceを設定しまうバグがあったのを修正しています。
Merge pull request #40469 from tmikoss/patch-1
rails guideのSecuring Rails Applications
の修正です。
exampleコードについて、DBへの処理でstring interpolationを使用しないよう修正、及び、delete_all
に指定出来ないconditionを指定しているコードがあったのを修正しています。
Merge pull request #39497 from jhawthorn/render_with_invalid_options
Action Pack、Action Viewの修正です。
render
に不正なオプションを指定した場合にexception(ArgumentError
)をraiseするよう修正しています。
Merge pull request #40370 from eileencodes/granular-role-and-shard-swapping
Active Recordの修正です。
connected_to
でrole
/ shard
を切り替える際に、クラス全体ではなく、abstract class毎にconnectionの切り替えが出来るよう修正しています。この機能はconfig.active_record.legacy_connection_handling
にfalseを指定した場合のみ有効化されるようになっています(デフォルトはtrue)。
例。
class ApplicationRecord < ActiveRecord::Base self.abstract_class = true end class AnimalsRecord < ActiveRecord::Base self.abstract_class = true end class Uer < ApplicationRecord end class Dog < AnimalsRecord end ActiveRecord::Base.connected_to(role: :reading) do User.first # default replicaからread Dog.first # default replicaからread AnimalsRecord.connected_to(role: :writing, shard: :one) do User.first # default replicaからread Dog.first # shard oneからread end User.first # default replicaからread Dog.first # default replicaからread ApplicationRecord.connected_to(role: :writing, shard: :two) do User.first # shard twoからread Dog.first # default replicaからread end end