CHANGELOG.md 7.6 KB
Newer Older
S
Santiago Pastorino 已提交
1 2
## Rails 4.0.0 (unreleased) ##

X
Xavier Noria 已提交
3 4 5 6 7
*   The generated `README.rdoc` for new applications invites the user to
    document the necessary steps to get the application up and running.

    *Xavier Noria*

8 9 10 11 12 13
*   Generated applications no longer get `doc/README_FOR_APP`. In consequence,
    the `doc` directory is created on demand by documentation tasks rather than
    generated by default.

    *Xavier Noria*

14 15 16 17 18 19 20 21 22 23 24 25 26 27
*   App executables now live in the `bin/` directory: `bin/bundle`,
    `bin/rails`, `bin/rake`. Run `rake rails:update:bin` to add these
    executables to your own app. `script/rails` is gone from new apps.

    Running executables within your app ensures they use your app's Ruby
    version and its bundled gems, and it ensures your production deployment
    tools only need to execute a single script. No more having to carefully
    `cd` to the app dir and run `bundle exec ...`.

    Rather than treating `bin/` as a junk drawer for generated "binstubs",
    bundler 1.3 adds support for generating stubs for just the executables
    you actually use: `bundle binstubs unicorn` generates `bin/unicorn`.
    Add that executable to git and version it just like any other app code.

J
Jeremy Kemper 已提交
28 29
    *Jeremy Kemper*

30
*   `config.assets.enabled` is now true by default. If you're upgrading from a Rails 3.x app
31
    that does not use the asset pipeline, you'll be required to add `config.assets.enabled = false`
32 33
    to your application.rb. If you don't want the asset pipeline on a new app use `--skip-sprockets`

34 35
    *DHH*

36 37 38
*   Environment name can be a start substring of the default environment names
    (production, development, test). For example: tes, pro, prod, dev, devel.
    Fix #8628.
39

40
    *Mykola Kyryk*
41

42
*   Add `-B` alias for `--skip-bundle` option in the rails new generators.
M
Mykola Kyryk 已提交
43

44
    *Jiri Pospisil*
M
Mykola Kyryk 已提交
45

46 47
*   Quote column names in generates fixture files. This prevents
    conflicts with reserved YAML keywords such as 'yes' and 'no'
48
    Fix #8612.
49 50 51

    *Yves Senn*

52 53 54 55
*   Explicit options have precedence over `~/.railsrc` on the `rails new` command.

    *Rafael Mendonça França*

56 57 58 59
*   Generated migrations now always use the `change` method.

    *Marc-André Lafortune*

60
*   Add `app/models/concerns` and `app/controllers/concerns` to the default directory structure and load path.
61
    See http://37signals.com/svn/posts/3372-put-chubby-models-on-a-diet-with-concerns for usage instructions.
D
David Heinemeier Hansson 已提交
62

63 64
    *DHH*

65 66 67
*   The `rails/info/routes` now correctly formats routing output as an html table.

    *Richard Schneeman*
68

69 70
*   The `public/index.html` is no longer generated for new projects.
    Page is replaced by internal `welcome_controller` inside of railties.
S
schneems 已提交
71 72 73

    *Richard Schneeman*

74
*   Add `ENV['RACK_ENV']` support to `rails runner/console/server`.
75 76

    *kennyj*
S
schneems 已提交
77

78 79
*   Add `db` to list of folders included by `rake notes` and `rake notes:custom`. *Antonio Cangiano*

80 81 82 83 84
*   Engines with a dummy app include the rake tasks of dependencies in the app namespace.
    Fix #8229

    *Yves Senn*

85
*   Add `sqlserver.yml` template file to satisfy `-d sqlserver` being passed to `rails new`.
86 87
    Fix #6882

88
    *Robert Nesius*
89

N
Nicolas Despres 已提交
90 91
*   Rake test:uncommitted finds git directory in ancestors *Nicolas Despres*

92
*   Add dummy app Rake tasks when `--skip-test-unit` and `--dummy-path` is passed to the plugin generator.
93 94 95 96
    Fix #8121

    *Yves Senn*

97 98
*   Add `.rake` to list of file extensions included by `rake notes` and `rake notes:custom`. *Brent J. Nordquist*

M
Mike Moore 已提交
99 100 101
*   New test locations `test/models`, `test/helpers`, `test/controllers`, and
    `test/mailers`. Corresponding rake tasks added as well. *Mike Moore*

102
*   Set a different cache per environment for assets pipeline
103 104 105 106
    through `config.assets.cache`.

    *Guillermo Iguaran*

107 108
*   `Rails.public_path` now returns a Pathname object. *Prem Sichanugrist*

109
*   Remove highly uncommon `config.assets.manifest` option for moving the manifest path.
110
    This option is now unsupported in sprockets-rails.
111 112 113

    *Guillermo Iguaran & Dmitry Vorotilin*

114 115 116 117 118
*   Add `config.action_controller.permit_all_parameters` to disable
    StrongParameters protection, it's false by default.

    *Guillermo Iguaran*

119
*   Remove `config.active_record.whitelist_attributes` and
120 121 122 123 124
    `config.active_record.mass_assignment_sanitizer` from new applications since
    MassAssignmentSecurity has been extracted from Rails.

    *Guillermo Iguaran*

125 126 127 128 129 130 131 132 133 134
*   Change `rails new` and `rails 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*

135 136
*   Fixed support for DATABASE_URL environment variable for rake db tasks. *Grace Liu*

N
needfeed 已提交
137 138 139
*   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*

140 141 142 143 144
*   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*

J
José Valim 已提交
145 146
*   `config.threadsafe!` is deprecated in favor of `config.eager_load` which provides a more fine grained control on what is eager loaded *José Valim*

147 148 149 150 151 152 153 154 155 156 157
*   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*

158 159 160 161 162 163 164 165 166 167
*   Allow scaffold/model/migration generators to accept a `polymorphic` modifier
    for `references`/`belongs_to`, for instance

        rails g model Product supplier:references{polymorphic}

    will generate the model with `belongs_to :supplier, polymorphic: true`
    association and appropriate migration.

    *Aleksey Magusev*

168 169
*   Set `config.active_record.migration_error` to `:page_load` for development *Richard Schneeman*

170 171
*   Add runner to Rails::Railtie as a hook called just after runner starts. *José Valim & kennyj*

172 173
*   Add `/rails/info/routes` path, displays same information as `rake routes` *Richard Schneeman & Andrew White*

174 175
*   Improved `rake routes` output for redirects *Łukasz Strzałkowski & Andrew White*

176 177
*   Load all environments available in `config.paths["config/environments"]`. *Piotr Sarnacki*

178 179
*   Remove Rack::SSL in favour of ActionDispatch::SSL. *Rafael Mendonça França*

180 181
*   Remove Active Resource from Rails framework. *Prem Sichangrist*

182 183 184 185 186 187 188 189 190 191 192 193
*   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 to `console` block. *Piotr Sarnacki*

    Example:

        # 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

194 195 196
*   Add convenience `hide!` method to Rails generators to hide current generator
    namespace from showing when running `rails generate`. *Carlos Antonio da Silva*

S
Santiago Pastorino 已提交
197 198
*   Rails::Plugin has gone. Instead of adding plugins to vendor/plugins use gems or bundler with path or git dependencies. *Santiago Pastorino*

B
Brian Cardarella 已提交
199 200 201
*   Set config.action_mailer.async = true to turn on asynchronous
    message delivery *Brian Cardarella*

X
Xavier Noria 已提交
202
Please check [3-2-stable](https://github.com/rails/rails/blob/3-2-stable/railties/CHANGELOG.md) for previous changes.