Ruby on Rails extends Docker support
With the beta release of Ruby on Rails 7.1, the Ruby-based web application framework now will produce all the Dockerfiles needed to deploy an application.
Unveiled September 13, Rails 7.1 beta 1 offers default Docker support. When generating a new application, the framework now will include Docker-related files in the application. These files are turned for production use with caching layers, multi-stage building to minimize large image sizes, and dependences needed whether developers use a JavaScript build environment or not.
Developers can access Rails 7.1 beta 1 from GitHub. Also in Rails 7.1:
- Built-in support is offered for the Trilogy MySQL database adapter.
- New applications can be generated by using the Bun JavaScript runtime.
- Capabilities are featured for building an authentication system, to complement
has_secure_password
. For starters,normalizes
declares an attribute normalization, to normalize attributes before saving to a database. Then,authenticate_by
protects againt common timing attacks when a user is authenticated in a controller. Also,generates_token_for
can be used to implement features such as password reset, andhas_secure_password
can verify the current password when updating the password. - Support for asynchronous queries has been expanded for Active Record, making it easier to run multiple, slow queries in parallel.
- The
perform_all_later
method in Active Job was added to streamline the process of enqueuing large numbers of jobs simultaneously. - A new configuration method,
config.autoload_lib(ignore:)
has been introduced, to enhance the autoload paths of applications.
Copyright © 2023 IDG Communications, Inc.
<!-- var slotName = 'bottomleaderboard'; var slotSize = []; if ($thm.deviceClass == 'mobile') { slotSize = [[300,50],[320,50],[300,250]]; } else if ($thm.deviceClass == 'tablet') { slotSize = [[728,90],[468,60]]; } else { slotSize = [[728,90],[970,90],[970,250]]; } IDG.GPT.addDisplayedAd(slotName, "true"); document.write('
'); IDG.GPT.defineGoogleTagSlot(slotName, slotSize, false, true); document.write('
'); $('#' + slotName).responsiveAd({screenSize:'971 1115', scriptTags: []}, true); //-->