ActiveModel::SecurePassword.min_cost ってなんじゃい
- RailsTutorialにこんなコードが登場するんです。
cost = ActiveModel::SecurePassword.min_cost ? BCrypt::Engine::MIN_COST :
BCrypt::Engine.cost
-
min_cost
の定義についてはとくに説明がない…。 - しかたないので、Railsのソースコード見ました
結論
テスト環境だとmin_cost
がTrue
になるようです。
railtie.rb
module ActiveModel
class Railtie < Rails::Railtie # :nodoc:
config.eager_load_namespaces << ActiveModel
config.active_model = ActiveSupport::OrderedOptions.new
initializer "active_model.secure_password" do
ActiveModel::SecurePassword.min_cost = Rails.env.test? # ←ここ!!
end
initializer "active_model.i18n_full_message" do
ActiveModel::Errors.i18n_full_message = config.active_model.delete(:i18n_full_message) || false
end
end
end
参考
初心者でもカンタンにRailsの中身のコードをコードリーディングする方法
https://qiita.com/jabba/items/8a9ac664eb2a0e61e621
おわり ✨🍰✨
(というかRails6出るんですね!)