e85a3ec624
Follow-up to [#47420][] With the changes made in [#47420][], `has_secure_token` declarations can be configured to execute in an `after_initialize` callback. This commit proposed a new Rails 7.1 default: generate all `has_secure_token` values when their corresponding models are initialized. To preserve pre-7.1 behavior, applications can set `config.active_record.generate_secure_token_on = :create`. By default, generate the value when the model is initialized: ```ruby class User < ApplicationRecord has_secure_token end record = User.new record.token # => "fwZcXX6SkJBJRogzMdciS7wf" ``` With `config.active_record.generate_secure_token_on = :create`, generate the value when the model is created: ```ruby # config/application.rb config.active_record.generate_secure_token_on = :create # app/models/user.rb class User < ApplicationRecord has_secure_token on: :create end record = User.new record.token # => nil record.save! record.token # => "fwZcXX6SkJBJRogzMdciS7wf" ``` [#47420]: https://github.com/rails/rails/pull/47420 Co-authored-by: Hartley McGuire <skipkayhil@gmail.com> |
||
---|---|---|
.. | ||
bin | ||
exe | ||
lib | ||
test | ||
.gitignore | ||
CHANGELOG.md | ||
MIT-LICENSE | ||
railties.gemspec | ||
Rakefile | ||
RDOC_MAIN.md | ||
README.rdoc |
= Railties -- Gluing the Engine to the \Rails Railties is responsible for gluing all frameworks together. Overall, it: * handles the bootstrapping process for a \Rails application; * manages the +rails+ command line interface; * and provides the \Rails generators core. == Download The latest version of Railties can be installed with RubyGems: * gem install railties Source code can be downloaded as part of the \Rails project on GitHub * https://github.com/rails/rails/tree/main/railties == License Railties is released under the MIT license: * https://opensource.org/licenses/MIT == Support API documentation is at * https://api.rubyonrails.org Bug reports can be filed for the Ruby on \Rails project here: * https://github.com/rails/rails/issues Feature requests should be discussed on the rails-core mailing list here: * https://discuss.rubyonrails.org/c/rubyonrails-core