2015/11/26分のコミットです。
CHANGELOGへの追加はありませんでした。
Remove
from scaffold, in favor of using CSS
railties/lib/rails/generators/erb/scaffold/templates/_form.html.erb
、
railties/lib/rails/generators/rails/scaffold/templates/scaffold.css
の修正です。
scaffoldが生成する_form.html.erb
で、label
メソッドの後に<br>
タグで改行を行っていたのを、<br>
タグではなく、css(display: block;
)で改行するよう修正しています。
Docs: ActiveRecord::QueryMethods#joins
activerecord/lib/active_record/relation/query_methods.rb
のdocの修正です。
ActiveRecord::QueryMethods#joins
のdocに、複数join、ネストしたjoinした場合のexampleを追加しています。
Add option to verify Origin header in CSRF checks
actionpack/lib/action_controller/metal/request_forgery_protection.rb
、
actionpack/lib/action_dispatch/http/request.rb
の修正です。
CSRFチェックを行う際、Originヘッダもチェックするよう修正しています。
# Returns true or false if a request is verified. Checks: # # * Is it a GET or HEAD request? Gets should be safe and idempotent # * Does the form_authenticity_token match the given token value from the params? # * Does the X-CSRF-Token header match the form_authenticity_token def verified_request? !protect_against_forgery? || request.get? || request.head? || (valid_request_origin? && any_authenticity_token_valid?) end ... # Checks if the request originated from the same origin by looking at the # Origin header. def valid_request_origin? if forgery_protection_origin_check # We accept blank origin headers because some user agents don't send it. request.origin.nil? || request.origin == request.base_url else true end end
チェックするかどうかは、Rails.application.config.action_controller.forgery_protection_origin_check
で設定出来るようになっています。デフォルトはfalse(新しくrails new
した場合は、trueに設定するようのinitializersが生成されるので、trueになる)。 これのCHANGELOGへのエントリが無いのは記載漏れかな。
Add prepared statements support for Mysql2Adapter
Active Recordの修正です。
Mysql2Adapter
で prepared statements を使用出来るよう対応しています。
が、一部テストがコケてしまった為、後ほどrevertされています。どうも、mysql2 gem自体にバグがあるようです(参考: stmt.execute cause Error: 2014 (CR_COMMANDS_OUT_OF_SYNC) · Issue #694 · brianmario/mysql2)
Only run listen tests in isolation, for now
activesupport/test/file_evented_update_checker_test.rb
、
ci/travis.rb
の修正です。
isolationの場合のみlistenのテスト(FileEventedUpdateCheckerTest
)を実行するよう修正しています。
listenを使用したテストにまだファイルが使用されているのにGCされてしまう、というバグがあるようで、それが原因で時折テストがコケてしまっており、それを避ける為対応したとの事です。
参考:Bug #11744: Open files being GC'ed while still in use - Ruby trunk - Ruby Issue Tracking System