This is an alternative implementation to #7771 thanks to the advice of @spastorino Rails is a dynamic framework that serves a static index.html by default. One of my first questions ever on IRC was solved by simply deleting my public/index.html file. This file is a source of confusion when starting as it over-rides any set "root" in the routes yet it itself is not listed in the routes. By making the page dynamic by default we can eliminate this confusion. This PR moves the static index page to an internal controller/route/view similar to `rails/info`. When someone starts a rails server, if no root is defined, this route will take over and the "dynamic" index page from rails/welcome_controller will be rendered. These routes are only added in development. If a developer defines a root in their routes, it automatically takes precedence over this route and will be rendered, with no deleting of files required. In addition to removing this source of confusion for new devs, we can now use Rails view helpers to build and render this page. While not the primary intent, the added value of "dogfooding" should not be under-estimated. The prior PR #7771 had push-back since it introduced developer facing files. This PR solves all of the same problems, but does not have any new developer facing files (it actually removes one). cc/ @wsouto, @dickeyxxx, @tyre, @ryanb, @josevalim, @maxim, @subdigital, @steveklabnik ATP Railties and Actionpack.
5.6 KiB
Rails 4.0.0 (unreleased)
-
The public/index.html is no longer generated for new projects. Page is replaced by internal welcome_controller inside of railties
Richard Schneeman
-
Add ENV['RACK_ENV'] support to
rails runner/console/server
.kennyj
-
Add
db
to list of folders included byrake notes
andrake notes:custom
. Antonio Cangiano -
Engines with a dummy app include the rake tasks of dependencies in the app namespace. Fix #8229
Yves Senn
-
Add sqlserver.yml template file to satisfy '-d sqlserver' being passed to 'rails new'. Fix #6882
*Robert Nesius*
-
Rake test:uncommitted finds git directory in ancestors Nicolas Despres
-
Add dummy app Rake tasks when --skip-test-unit and --dummy-path is passed to the plugin generator. Fix #8121
Yves Senn
-
Ensure that RAILS_ENV is set when accessing Rails.env Steve Klabnik
-
Don't eager-load app/assets and app/views Elia Schito
-
Add
.rake
to list of file extensions included byrake notes
andrake notes:custom
. Brent J. Nordquist -
New test locations
test/models
,test/helpers
,test/controllers
, andtest/mailers
. Corresponding rake tasks added as well. Mike Moore -
Set a different cache per environment for assets pipeline through
config.assets.cache
.Guillermo Iguaran
-
Rails.public_path
now returns a Pathname object. Prem Sichanugrist -
Remove highly uncommon
config.assets.manifest
option for moving the manifest path. This option is now unsupported in sprockets-rails.Guillermo Iguaran & Dmitry Vorotilin
-
Add
config.action_controller.permit_all_parameters
to disable StrongParameters protection, it's false by default.Guillermo Iguaran
-
Remove
config.active_record.whitelist_attributes
andconfig.active_record.mass_assignment_sanitizer
from new applications since MassAssignmentSecurity has been extracted from Rails.Guillermo Iguaran
-
Change
rails new
andrails plugin new
generators to name the.gitkeep
files as.keep
in a more SCM-agnostic way.Change
--skip-git
option to only skip the.gitignore
file and still generate the.keep
files.Add
--skip-keeps
option to skip the.keep
files.Derek Prior & Francesco Rodriguez
-
Fixed support for DATABASE_URL environment variable for rake db tasks. Grace Liu
-
rails dbconsole now can use SSL for MySQL. The database.yml options sslca, sslcert, sslcapath, sslcipher, and sslkey now affect rails dbconsole. Jim Kingdon and Lars Petrus
-
Correctly handle SCRIPT_NAME when generating routes to engine in application that's mounted at a sub-uri. With this behavior, you should not use default_url_options[:script_name] to set proper application's mount point by yourself. Piotr Sarnacki
-
config.threadsafe!
is deprecated in favor ofconfig.eager_load
which provides a more fine grained control on what is eager loaded José Valim -
The migration generator will now produce AddXXXToYYY/RemoveXXXFromYYY migrations with references statements, for instance
rails g migration AddReferencesToProducts user:references supplier:references{polymorphic}
will generate the migration with:
add_reference :products, :user, index: true add_reference :products, :supplier, polymorphic: true, index: true
Aleksey Magusev
-
Allow scaffold/model/migration generators to accept a
polymorphic
modifier forreferences
/belongs_to
, for instancerails g model Product supplier:references{polymorphic}
will generate the model with
belongs_to :supplier, polymorphic: true
association and appropriate migration.Aleksey Magusev
-
Set
config.active_record.migration_error
to:page_load
for development Richard Schneeman -
Add runner to Rails::Railtie as a hook called just after runner starts. José Valim & kennyj
-
Add
/rails/info/routes
path, displays same information asrake routes
Richard Schneeman & Andrew White -
Improved
rake routes
output for redirects Łukasz Strzałkowski & Andrew White -
Load all environments available in
config.paths["config/environments"]
. Piotr Sarnacki -
Add
config.queue_consumer
to change the job queue consumer from the defaultActiveSupport::ThreadedQueueConsumer
. Carlos Antonio da Silva -
Add
Rails.queue
for processing jobs in the background. Yehuda Katz -
Remove Rack::SSL in favour of ActionDispatch::SSL. Rafael Mendonça França
-
Remove Active Resource from Rails framework. Prem Sichangrist
-
Allow to set class that will be used to run as a console, other than IRB, with
Rails.application.config.console=
. It's best to add it toconsole
block. Piotr SarnackiExample:
# it can be added to config/application.rb console do # this block is called only when running console, # so we can safely require pry here require "pry" config.console = Pry end
-
Add convenience
hide!
method to Rails generators to hide current generator namespace from showing when runningrails generate
. Carlos Antonio da Silva -
Scaffold now uses
content_tag_for
in index.html.erb José Valim -
Rails::Plugin has gone. Instead of adding plugins to vendor/plugins use gems or bundler with path or git dependencies. Santiago Pastorino
-
Set config.action_mailer.async = true to turn on asynchronous message delivery Brian Cardarella
Please check 3-2-stable for previous changes.