
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,normalizesdeclares an attribute normalization, to normalize attributes before saving to a database. Then,authenticate_byprotects againt common timing attacks when a user is authenticated in a controller. Also,generates_token_forcan be used to implement features such as password reset, andhas_secure_passwordcan 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_latermethod 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); 						//--> 						
 					