This reverts commit 70d6e16fbad75b89dd1798ed697e7732b8606fa3, reversing
changes made to ea4db3bc078fb3093ecdddffdf4f2f4ff3e1e8f9.
Seems to be a code merge done by mistake.
Permanently setting $VERBOSE to nil causes unwanted side effects (warnings generated by app code are
silenced when triggered by a rake task but visible otherwise). silence_warnings {} would be safer to
use here since it resets $VERBOSE back to what it was when the block finishes.
* we no more have to manipulate the each caller strings by ourselves using caller_locations
* caller_locations runs slightly faster, and creates less objects than good old caller
Benchmark (loading an Engine 1000 times):
caller: 262.89 ms
caller_locations: 186.068 ms
Showing welcome page in production can expose information, which should
not be visible on production if people don't override the default root
route.
This reverts commit b0caea29c2da9f4c8bb958019813482da297067d.
With Rails 4 the default index page was moved from a static file `index.html` inside the `public/` folder to an internal controller/view inside of the railties gem. This was to allow use of erb in the default index page and to remove the requirement that new apps must delete a static file to make their index pages work. While this was a good change, the functionality was unexpected to developers who wish to get their apps running in production ASAP. They will create a new app `rails new my app`, start a server to verify it works, then immediately deploy the app to verify that it can start working in production. Unfortunately locally they see a page when they visit `localhost:3000` when they visit their production app they get an error page.
We initially anticipated this problem in the original pull request, but did not properly anticipate the severity or quantity of people who would like this functionality. Having a default index page serves as an excellent litmus test for a passed deploy on default apps, and it is very unexpected to have a page work locally, but not on production.
This change makes the default index page available in production if the developer has not over-written it by defining their own `root` path inside of routes.
- As default index page is no longer in public folder, rails hits the
welcome controller in railties for index action
- If the database is not created or username and password are
incorrect in database.yml, those errors are first shown before index
action succeeds
- welcome#index succeeds iff the database is created with correct
details in database.yml
- So this information about creating database is not required in the
index template
This reverts commit 19ac034bdc9be175eff7cf54208ba14b43d97681.
And allows webservers to configure X-Sendfile-Type.
Closes#11440 thanks to [@MSch]
Conflicts:
railties/lib/rails/application.rb
This class encapsulates a lot of logic that wasn't very object oriented.
Helper methods have been created to try to make things more logical and
easy to read.