Reputation: 2397
If I run
rails new _4.1.0.beta1_ rails4.1app --skip-test-unit
I find this code in config/application.rb
# Pick the frameworks you want:
require "active_model/railtie"
require "active_record/railtie"
require "action_controller/railtie"
require "action_mailer/railtie"
require "action_view/railtie"
require "sprockets/railtie"
# require "rails/test_unit/railtie"
While if Create a Rails 4.0 app:
rails new _4.0.2_ rails4.0app --skip-test-unit
I get this in config/application.rb
# Pick the frameworks you want:
require "active_record/railtie"
require "action_controller/railtie"
require "action_mailer/railtie"
require "sprockets/railtie"
# require "rails/test_unit/railtie"
Doesnt rails 4.0.2 include active_model and action_view? I think it's related to introduction of Action Pack, but it's really bugging me that I don't know why the files are different.
Upvotes: 3
Views: 691
Reputation: 1510
What I did is just opened that file's template in rails repo. Here's a link. You can read through history, or just clone repo and use gitk
tool to do it a bit faster. Here's what I found:
Template for Rails 4.0:
<% if include_all_railties? -%>
require 'rails/all'
<% else -%>
# Pick the frameworks you want:
<%= comment_if :skip_active_record %>require "active_record/railtie"
require "action_controller/railtie"
require "action_mailer/railtie"
<%= comment_if :skip_sprockets %>require "sprockets/railtie"
<%= comment_if :skip_test_unit %>require "rails/test_unit/railtie"
<% end -%>
Template for Rails current Rails master:
<% if include_all_railties? -%>
require 'rails/all'
<% else -%>
# Pick the frameworks you want:
require "active_model/railtie"
<%= comment_if :skip_active_record %>require "active_record/railtie"
require "action_controller/railtie"
require "action_mailer/railtie"
<%= comment_if :skip_action_view %>require "action_view/railtie"
<%= comment_if :skip_sprockets %>require "sprockets/railtie"
<%= comment_if :skip_test_unit %>require "rails/test_unit/railtie"
<% end -%>
There's not much difference here. I believe it has to do something with dependency structure inside of Rails itself. For example, now ActionController doesn't state ActionView as a required part of it, so it should be loaded separately.
Upvotes: 1