2021/02/19分のコミットです。
CHANGELOGにのったコミットは以下の通りです。
activestorage/CHANGELOG.md
Merge pull request #41475 from Yegorov/add-uncountable
activemodel/lib/active_model/naming.rb
の修正です。
ActiveModel::Name
に、uncountableかどうかをチェックする為のuncountable?
メソッドを追加しています。
Add send_stream to do for dynamic streams what send_data does for static files (#41488)
actionpack/lib/action_controller/metal/live.rb
の修正です。
静的ファイルをstreamで送信する為のsend_stream
メソッドを追加しています。
send_stream(filename: "subscribers.csv") do |stream| stream.write "email_address,updated_at\n" @subscribers.find_each do |subscriber| stream.write "#{subscriber.email_address},#{subscriber.updated_at}\n" end end
Add redirect_back directive to Rails 5.0 -> 5.1 upgrade guide
rails guideのUpgrading Ruby on Rails
の修正です。
Upgrading from Rails 5.0 to Rails 5.1
の項に、削除されたredirect_to :back
についての説明を追加しています。
Allow new syntax for enum
to avoid leading _
from reserved options
activerecord/lib/active_record/enum.rb
の修正です。
enum
で複数の引数を指定出来るよう修正しています。
enum
は引数を1つしか指定出来ない都合上、reserved optionsに_
を指定するようになっていました(e.g. _prefix
、_scopes
)。
この対応により上記問題が解決される為、新しいフォーマットのを使用した場合、reserved optionsに_
を指定しないで良いようになっています。
# Before class Book < ActiveRecord::Base enum status: [ :proposed, :written ], _prefix: true, _scopes: false enum cover: [ :hard, :soft ], _suffix: true, _default: :hard end
# After class Book < ActiveRecord::Base enum :status, [ :proposed, :written ], prefix: true, scopes: false enum :cover, [ :hard, :soft ], suffix: true, default: :hard end
Call run
after preloading records
activerecord/lib/active_record/associations/preloader.rb
、
activerecord/lib/active_record/associations/preloader/association.rb
の修正です。
already_loaded?
のチェックが正しく動作してなかったのと、load_records_in_batch
でrecordのpreloadが行われないバグがあったのを修正しています。
Extract ActiveStorage::Streaming so your own controllers can use it (#41440)
Active Storageの修正です。
blobをstorageからstreamする為のsend_blob_stream
メソッドを追加しています。使用する場合、controllerでActiveStorage::Streaming
moduleをincludeする必要があります。
class MyPublicBlobsController < ApplicationController include ActiveStorage::SetBlob, ActiveStorage::Streaming def show http_cache_forever(public: true) do send_blob_stream @blob, disposition: params[:disposition] end end end