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

3 4 5 6 7 8
*   Restore Rails::Engine::Railties#engines with deprecation to ensure
    compatibility with gems such as Thinking Sphinx
    Fix #8551

    *Tim Raymond*

9 10 11 12 13
*   Specify which logs to clear when using the `rake log:clear` task.
    (e.g. rake log:clear LOGS=test,staging)

    *Matt Bridges*

14 15 16 17 18 19
*   Allow a `:dirs` key in the `SourceAnnotationExtractor.enumerate` options
    to explicitly set the directories to be traversed so it's easier to define
    custom rake tasks.

    *Brian D. Burns*

20 21 22 23 24 25 26 27 28 29 30 31 32 33 34
*   Deprecate `Rails::Generators::ActiveModel#update_attributes` in favor of `#update`.

    ORMs that implement `Generators::ActiveModel#update_attributes` should change
    to `#update`. Scaffold controller generators should change calls like:

        @orm_instance.update_attributes(...)

    to:

        @orm_instance.update(...)

    This goes along with the addition of `ActiveRecord::Base#update`.

    *Carlos Antonio da Silva*

35 36 37 38 39 40 41 42 43
*   Include `jbuilder` by default and rely on its scaffold generator to show json API.
    Check https://github.com/rails/jbuilder for more info and examples.

    *DHH*

*   Scaffold now generates HTML-only controller by default.

    *DHH + Pavel Pravosud*

X
Xavier Noria 已提交
44 45 46 47 48
*   The generated `README.rdoc` for new applications invites the user to
    document the necessary steps to get the application up and running.

    *Xavier Noria*

49 50 51 52 53 54
*   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*

55 56 57 58 59 60 61 62 63 64 65 66 67 68
*   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 已提交
69 70
    *Jeremy Kemper*

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

75 76
    *DHH*

77 78 79
*   Environment name can be a start substring of the default environment names
    (production, development, test). For example: tes, pro, prod, dev, devel.
    Fix #8628.
80

81
    *Mykola Kyryk*
82

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

85
    *Jiri Pospisil*
M
Mykola Kyryk 已提交
86

87 88
*   Quote column names in generates fixture files. This prevents
    conflicts with reserved YAML keywords such as 'yes' and 'no'
89
    Fix #8612.
90 91 92

    *Yves Senn*

93 94 95 96
*   Explicit options have precedence over `~/.railsrc` on the `rails new` command.

    *Rafael Mendonça França*

97 98 99 100
*   Generated migrations now always use the `change` method.

    *Marc-André Lafortune*

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

104 105
    *DHH*

106 107 108
*   The `rails/info/routes` now correctly formats routing output as an html table.

    *Richard Schneeman*
109

110 111
*   The `public/index.html` is no longer generated for new projects.
    Page is replaced by internal `welcome_controller` inside of railties.
S
schneems 已提交
112 113 114

    *Richard Schneeman*

115
*   Add `ENV['RACK_ENV']` support to `rails runner/console/server`.
116 117

    *kennyj*
S
schneems 已提交
118

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

121 122 123 124 125
*   Engines with a dummy app include the rake tasks of dependencies in the app namespace.
    Fix #8229

    *Yves Senn*

126
*   Add `sqlserver.yml` template file to satisfy `-d sqlserver` being passed to `rails new`.
127 128
    Fix #6882

129
    *Robert Nesius*
130

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

133
*   Add dummy app Rake tasks when `--skip-test-unit` and `--dummy-path` is passed to the plugin generator.
134 135 136 137
    Fix #8121

    *Yves Senn*

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

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

143
*   Set a different cache per environment for assets pipeline
144 145 146 147
    through `config.assets.cache`.

    *Guillermo Iguaran*

148 149
*   `Rails.public_path` now returns a Pathname object. *Prem Sichanugrist*

150
*   Remove highly uncommon `config.assets.manifest` option for moving the manifest path.
151
    This option is now unsupported in sprockets-rails.
152 153 154

    *Guillermo Iguaran & Dmitry Vorotilin*

155 156 157 158 159
*   Add `config.action_controller.permit_all_parameters` to disable
    StrongParameters protection, it's false by default.

    *Guillermo Iguaran*

160
*   Remove `config.active_record.whitelist_attributes` and
161 162 163 164 165
    `config.active_record.mass_assignment_sanitizer` from new applications since
    MassAssignmentSecurity has been extracted from Rails.

    *Guillermo Iguaran*

166 167 168 169 170 171 172 173 174 175
*   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*

176 177
*   Fixed support for DATABASE_URL environment variable for rake db tasks. *Grace Liu*

N
needfeed 已提交
178 179 180
*   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*

181 182 183 184 185
*   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 已提交
186 187
*   `config.threadsafe!` is deprecated in favor of `config.eager_load` which provides a more fine grained control on what is eager loaded *José Valim*

188 189 190 191 192 193 194 195 196 197 198
*   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*

199 200 201 202 203 204 205 206 207 208
*   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*

209 210
*   Set `config.active_record.migration_error` to `:page_load` for development *Richard Schneeman*

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

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

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

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

219 220
*   Remove Rack::SSL in favour of ActionDispatch::SSL. *Rafael Mendonça França*

221 222
*   Remove Active Resource from Rails framework. *Prem Sichangrist*

223 224 225 226 227 228 229 230 231 232 233 234
*   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

235 236 237
*   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 已提交
238 239
*   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 已提交
240 241 242
*   Set config.action_mailer.async = true to turn on asynchronous
    message delivery *Brian Cardarella*

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