2014-01-05 10:05:54 +00:00
|
|
|
|
* Show full route constraints in error message
|
|
|
|
|
|
|
|
|
|
When an optimized helper fails to generate, show the full route constraints
|
|
|
|
|
in the error message. Previously it would only show the contraints that were
|
|
|
|
|
required as part of the path.
|
|
|
|
|
|
|
|
|
|
Fixes #13592
|
|
|
|
|
|
|
|
|
|
*Andrew White*
|
|
|
|
|
|
2014-01-05 00:24:57 +00:00
|
|
|
|
* Use a custom route visitor for optimized url generation. Fixes #13349.
|
|
|
|
|
|
|
|
|
|
*Andrew White*
|
|
|
|
|
|
2014-01-01 11:15:31 +00:00
|
|
|
|
* Allow engine root relative redirects using an empty string.
|
|
|
|
|
|
|
|
|
|
Example:
|
|
|
|
|
|
|
|
|
|
# application routes.rb
|
|
|
|
|
mount BlogEngine => '/blog'
|
|
|
|
|
|
|
|
|
|
# engine routes.rb
|
|
|
|
|
get '/welcome' => redirect('')
|
|
|
|
|
|
|
|
|
|
This now redirects to the path `/blog`, whereas before it would redirect
|
|
|
|
|
to the application root path. In the case of a path redirect or a custom
|
|
|
|
|
redirect if the path returned contains a host then the path is treated as
|
|
|
|
|
absolute. Similarly for option redirects, if the options hash returned
|
|
|
|
|
contains a `:host` or `:domain` key then the path is treated as absolute.
|
|
|
|
|
|
|
|
|
|
Fixes #7977
|
|
|
|
|
|
|
|
|
|
*Andrew White*
|
|
|
|
|
|
2013-12-29 18:24:02 +00:00
|
|
|
|
* Fix `Encoding::CompatibilityError` when public path is UTF-8
|
|
|
|
|
|
|
|
|
|
In #5337 we forced the path encoding to ASCII-8BIT to prevent static file handling
|
|
|
|
|
from blowing up before an application has had chance to deal with possibly invalid
|
|
|
|
|
urls. However this has a negative side effect of making it an incompatible encoding
|
|
|
|
|
if the application's public path has UTF-8 characters in it.
|
|
|
|
|
|
|
|
|
|
To work around the problem we check to see if the path has a valid encoding once
|
|
|
|
|
it has been unescaped. If it is not valid then we can return early since it will
|
|
|
|
|
not match any file anyway.
|
|
|
|
|
|
|
|
|
|
Fixes #13518
|
|
|
|
|
|
|
|
|
|
*Andrew White*
|
|
|
|
|
|
2013-12-23 21:55:03 +00:00
|
|
|
|
* `ActionController::Parameters#permit!` permits hashes in array values.
|
|
|
|
|
|
|
|
|
|
*Xavier Noria*
|
|
|
|
|
|
2013-12-21 00:11:47 +00:00
|
|
|
|
* Converts hashes in arrays of unfiltered params to unpermitted params.
|
|
|
|
|
|
|
|
|
|
Fixes #13382
|
|
|
|
|
|
|
|
|
|
*Xavier Noria*
|
|
|
|
|
|
2013-12-20 06:39:17 +00:00
|
|
|
|
* New config option to opt out of params "deep munging" that was used to
|
|
|
|
|
address security vulnerability CVE-2013-0155. In your app config:
|
2013-12-05 11:08:34 +00:00
|
|
|
|
|
|
|
|
|
config.action_dispatch.perform_deep_munge = false
|
|
|
|
|
|
2013-12-20 06:39:17 +00:00
|
|
|
|
Take care to understand the security risk involved before disabling this.
|
|
|
|
|
[Read more.](https://groups.google.com/forum/#!topic/rubyonrails-security/t1WFuuQyavI)
|
2013-12-05 11:08:34 +00:00
|
|
|
|
|
|
|
|
|
*Bernard Potocki*
|
|
|
|
|
|
2013-12-06 16:32:25 +00:00
|
|
|
|
* `rake routes` shows routes defined under assets prefix.
|
|
|
|
|
|
|
|
|
|
*Ryunosuke SATO*
|
|
|
|
|
|
2013-12-13 03:41:14 +00:00
|
|
|
|
* Extend cross-site request forgery (CSRF) protection to GET requests with
|
|
|
|
|
JavaScript responses, protecting apps from cross-origin `<script>` tags.
|
|
|
|
|
|
|
|
|
|
*Jeremy Kemper*
|
|
|
|
|
|
2013-12-12 10:33:46 +00:00
|
|
|
|
* Fix generating a path for engine inside a resources block.
|
|
|
|
|
|
|
|
|
|
Fixes #8533.
|
2013-10-30 11:05:13 +00:00
|
|
|
|
|
|
|
|
|
*Piotr Sarnacki*
|
|
|
|
|
|
2013-12-12 10:33:46 +00:00
|
|
|
|
* Add `Mime::Type.register "text/vcard", :vcf` to the default list of mime types.
|
2013-12-05 23:48:32 +00:00
|
|
|
|
|
|
|
|
|
*DHH*
|
|
|
|
|
|
2013-12-05 10:40:24 +00:00
|
|
|
|
* Remove deprecated `ActionController::RecordIdentifier`, use
|
|
|
|
|
`ActionView::RecordIdentifier` instead.
|
|
|
|
|
|
|
|
|
|
*kennyj*
|
|
|
|
|
|
2013-12-04 03:48:21 +00:00
|
|
|
|
* Fix regression when using `ActionView::Helpers::TranslationHelper#translate` with
|
|
|
|
|
`options[:raise]`.
|
|
|
|
|
|
|
|
|
|
This regression was introduced at ec16ba75a5493b9da972eea08bae630eba35b62f.
|
|
|
|
|
|
|
|
|
|
*Shota Fukumori (sora_h)*
|
|
|
|
|
|
2013-12-03 10:17:01 +00:00
|
|
|
|
* Introducing Variants
|
|
|
|
|
|
|
|
|
|
We often want to render different html/json/xml templates for phones,
|
|
|
|
|
tablets, and desktop browsers. Variants make it easy.
|
|
|
|
|
|
2013-12-04 19:48:32 +00:00
|
|
|
|
The request variant is a specialization of the request format, like `:tablet`,
|
|
|
|
|
`:phone`, or `:desktop`.
|
2013-12-03 10:17:01 +00:00
|
|
|
|
|
2013-12-12 10:33:46 +00:00
|
|
|
|
You can set the variant in a `before_action`:
|
2013-12-03 10:17:01 +00:00
|
|
|
|
|
|
|
|
|
request.variant = :tablet if request.user_agent =~ /iPad/
|
|
|
|
|
|
|
|
|
|
Respond to variants in the action just like you respond to formats:
|
|
|
|
|
|
|
|
|
|
respond_to do |format|
|
|
|
|
|
format.html do |html|
|
|
|
|
|
html.tablet # renders app/views/projects/show.html+tablet.erb
|
|
|
|
|
html.phone { extra_setup; render ... }
|
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
Provide separate templates for each format and variant:
|
|
|
|
|
|
|
|
|
|
app/views/projects/show.html.erb
|
|
|
|
|
app/views/projects/show.html+tablet.erb
|
|
|
|
|
app/views/projects/show.html+phone.erb
|
|
|
|
|
|
2013-12-12 10:02:06 +00:00
|
|
|
|
You can also simplify the variants definition using the inline syntax:
|
|
|
|
|
|
|
|
|
|
respond_to do |format|
|
|
|
|
|
format.js { render "trash" }
|
|
|
|
|
format.html.phone { redirect_to progress_path }
|
|
|
|
|
format.html.none { render "trash" }
|
|
|
|
|
end
|
|
|
|
|
|
2013-12-24 15:53:10 +00:00
|
|
|
|
Variants also support common `any`/`all` block that formats have.
|
|
|
|
|
|
|
|
|
|
It works for both inline:
|
|
|
|
|
|
|
|
|
|
respond_to do |format|
|
|
|
|
|
format.html.any { render text: "any" }
|
|
|
|
|
format.html.phone { render text: "phone" }
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
and block syntax:
|
|
|
|
|
|
|
|
|
|
respond_to do |format|
|
|
|
|
|
format.html do |variant|
|
|
|
|
|
variant.any(:tablet, :phablet){ render text: "any" }
|
|
|
|
|
variant.phone { render text: "phone" }
|
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
|
2013-12-03 10:17:01 +00:00
|
|
|
|
*Łukasz Strzałkowski*
|
|
|
|
|
|
2013-12-19 18:30:48 +00:00
|
|
|
|
* Fix render of localized templates without an explicit format using wrong
|
|
|
|
|
content header and not passing correct formats to template due to the
|
|
|
|
|
introduction of the `NullType` for mimes.
|
2013-11-29 11:26:12 +00:00
|
|
|
|
|
2013-12-19 18:30:48 +00:00
|
|
|
|
Templates like `hello.it.erb` were subject to this issue.
|
2013-11-29 11:26:12 +00:00
|
|
|
|
|
2013-12-03 16:38:12 +00:00
|
|
|
|
Fixes #13064.
|
|
|
|
|
|
2013-12-19 18:30:48 +00:00
|
|
|
|
*Angelo Capilleri*, *Carlos Antonio da Silva*
|
2013-11-29 11:26:12 +00:00
|
|
|
|
|
2013-12-02 05:03:37 +00:00
|
|
|
|
* Try to escape each part of a url correctly when using a redirect route.
|
|
|
|
|
|
|
|
|
|
Fixes #13110.
|
|
|
|
|
|
|
|
|
|
*Andrew White*
|
|
|
|
|
|
2013-11-25 03:46:58 +00:00
|
|
|
|
* Better error message for typos in assert_response argument.
|
|
|
|
|
|
|
|
|
|
When the response type argument to `assert_response` is not a known
|
|
|
|
|
response type, `assert_response` now throws an ArgumentError with a clear
|
|
|
|
|
message. This is intended to help debug typos in the response type.
|
|
|
|
|
|
|
|
|
|
*Victor Costan*
|
|
|
|
|
|
2013-11-21 17:10:38 +00:00
|
|
|
|
* Fix formatting for `rake routes` when a section is shorter than a header.
|
2013-11-20 23:52:09 +00:00
|
|
|
|
|
|
|
|
|
*Sıtkı Bağdat*
|
2013-11-21 17:10:38 +00:00
|
|
|
|
|
2013-11-22 10:30:03 +00:00
|
|
|
|
* Take a hash with options inside array in `#url_for`.
|
2013-11-12 20:18:36 +00:00
|
|
|
|
|
|
|
|
|
Example:
|
|
|
|
|
|
|
|
|
|
url_for [:new, :admin, :post, { param: 'value' }]
|
2013-11-15 13:22:49 +00:00
|
|
|
|
# => http://example.com/admin/posts/new?param=value
|
2013-11-12 20:18:36 +00:00
|
|
|
|
|
|
|
|
|
*Andrey Ognevsky*
|
|
|
|
|
|
2013-10-29 16:00:45 +00:00
|
|
|
|
* Add `session#fetch` method
|
|
|
|
|
|
2013-12-12 10:33:46 +00:00
|
|
|
|
fetch behaves like [Hash#fetch](http://www.ruby-doc.org/core-1.9.3/Hash.html#method-i-fetch).
|
2013-10-29 16:00:45 +00:00
|
|
|
|
It returns a value from the hash for the given key.
|
|
|
|
|
If the key can’t be found, there are several options:
|
|
|
|
|
|
|
|
|
|
* With no other arguments, it will raise an KeyError exception.
|
|
|
|
|
* If a default value is given, then that will be returned.
|
|
|
|
|
* If the optional code block is specified, then that will be run and its result returned.
|
|
|
|
|
|
|
|
|
|
*Damien Mathieu*
|
|
|
|
|
|
2013-10-27 15:01:03 +00:00
|
|
|
|
* Don't let strong parameters mutate the given hash via `fetch`
|
|
|
|
|
|
|
|
|
|
Create a new instance if the given parameter is a `Hash` instead of
|
|
|
|
|
passing it to the `convert_hashes_to_parameters` method since it is
|
|
|
|
|
overriding its default value.
|
|
|
|
|
|
|
|
|
|
*Brendon Murphy*, *Doug Cole*
|
|
|
|
|
|
2013-05-05 11:32:00 +00:00
|
|
|
|
* Add `params` option to `button_to` form helper, which renders the given hash
|
|
|
|
|
as hidden form fields.
|
|
|
|
|
|
|
|
|
|
*Andy Waite*
|
|
|
|
|
|
2013-10-24 16:43:07 +00:00
|
|
|
|
* Make assets helpers work in the controllers like it works in the views.
|
2013-10-24 07:46:57 +00:00
|
|
|
|
|
|
|
|
|
Example:
|
2013-10-24 16:43:07 +00:00
|
|
|
|
|
2013-10-24 07:46:57 +00:00
|
|
|
|
# config/application.rb
|
|
|
|
|
config.asset_host = 'http://mycdn.com'
|
2013-10-24 16:43:07 +00:00
|
|
|
|
|
2013-10-24 07:46:57 +00:00
|
|
|
|
ActionController::Base.helpers.asset_path('fallback.png')
|
|
|
|
|
# => http://mycdn.com/assets/fallback.png
|
2013-10-24 16:43:07 +00:00
|
|
|
|
|
|
|
|
|
Fixes #10051.
|
|
|
|
|
|
2013-10-24 07:46:57 +00:00
|
|
|
|
*Tima Maslyuchenko*
|
2013-10-24 16:43:07 +00:00
|
|
|
|
|
2013-10-10 12:01:03 +00:00
|
|
|
|
* Respect `SCRIPT_NAME` when using `redirect` with a relative path
|
|
|
|
|
|
|
|
|
|
Example:
|
2013-10-24 16:43:07 +00:00
|
|
|
|
|
2013-10-10 12:01:03 +00:00
|
|
|
|
# application routes.rb
|
|
|
|
|
mount BlogEngine => '/blog'
|
|
|
|
|
|
|
|
|
|
# engine routes.rb
|
|
|
|
|
get '/admin' => redirect('admin/dashboard')
|
|
|
|
|
|
|
|
|
|
This now redirects to the path `/blog/admin/dashboard`, whereas before it would've
|
|
|
|
|
generated an invalid url because there would be no slash between the host name and
|
|
|
|
|
the path. It also allows redirects to work where the application is deployed to a
|
|
|
|
|
subdirectory of a website.
|
|
|
|
|
|
2013-10-24 16:43:07 +00:00
|
|
|
|
Fixes #7977.
|
2013-10-10 12:01:03 +00:00
|
|
|
|
|
|
|
|
|
*Andrew White*
|
|
|
|
|
|
2013-08-30 09:53:03 +00:00
|
|
|
|
* Fixing repond_with working directly on the options hash
|
|
|
|
|
This fixes an issue where the respond_with worked directly with the given
|
|
|
|
|
options hash, so that if a user relied on it after calling respond_with,
|
|
|
|
|
the hash wouldn't be the same.
|
|
|
|
|
|
2013-10-09 09:49:12 +00:00
|
|
|
|
Fixes #12029.
|
2013-08-30 09:53:03 +00:00
|
|
|
|
|
|
|
|
|
*bluehotdog*
|
|
|
|
|
|
2013-09-30 11:51:37 +00:00
|
|
|
|
* Fix `ActionDispatch::RemoteIp::GetIp#calculate_ip` to only check for spoofing
|
|
|
|
|
attacks if both `HTTP_CLIENT_IP` and `HTTP_X_FORWARDED_FOR` are set.
|
|
|
|
|
|
2013-10-09 09:49:12 +00:00
|
|
|
|
Fixes #10844.
|
2013-09-30 11:51:37 +00:00
|
|
|
|
|
|
|
|
|
*Tamir Duberstein*
|
|
|
|
|
|
2013-09-22 14:57:21 +00:00
|
|
|
|
* Strong parameters should permit nested number as key.
|
|
|
|
|
|
2013-10-09 09:49:12 +00:00
|
|
|
|
Fixes #12293.
|
2013-09-22 14:57:21 +00:00
|
|
|
|
|
|
|
|
|
*kennyj*
|
|
|
|
|
|
2013-09-19 13:17:15 +00:00
|
|
|
|
* Fix regex used to detect URI schemes in `redirect_to` to be consistent with
|
|
|
|
|
RFC 3986.
|
|
|
|
|
|
|
|
|
|
*Derek Prior*
|
|
|
|
|
|
2013-04-26 18:30:29 +00:00
|
|
|
|
* Fix incorrect `assert_redirected_to` failure message for protocol-relative
|
|
|
|
|
URLs.
|
|
|
|
|
|
|
|
|
|
*Derek Prior*
|
|
|
|
|
|
2013-09-18 17:40:03 +00:00
|
|
|
|
* Fix an issue where router can't recognize downcased url encoding path.
|
|
|
|
|
|
2013-10-09 09:49:12 +00:00
|
|
|
|
Fixes #12269.
|
2013-09-18 17:40:03 +00:00
|
|
|
|
|
|
|
|
|
*kennyj*
|
|
|
|
|
|
2013-09-13 13:03:38 +00:00
|
|
|
|
* Fix custom flash type definition. Misusage of the `_flash_types` class variable
|
|
|
|
|
caused an error when reloading controllers with custom flash types.
|
|
|
|
|
|
2013-10-09 09:49:12 +00:00
|
|
|
|
Fixes #12057.
|
2013-09-13 13:03:38 +00:00
|
|
|
|
|
|
|
|
|
*Ricardo de Cillo*
|
|
|
|
|
|
2013-09-12 22:22:06 +00:00
|
|
|
|
* Do not break params filtering on `nil` values.
|
|
|
|
|
|
|
|
|
|
Fixes #12149.
|
|
|
|
|
|
|
|
|
|
*Vasiliy Ermolovich*
|
|
|
|
|
|
2013-08-21 12:42:04 +00:00
|
|
|
|
* Development mode exceptions are rendered in text format in case of XHR request.
|
|
|
|
|
|
|
|
|
|
*Kir Shatrov*
|
|
|
|
|
|
2013-08-07 19:43:22 +00:00
|
|
|
|
* Fix an issue where :if and :unless controller action procs were being run
|
|
|
|
|
before checking for the correct action in the :only and :unless options.
|
|
|
|
|
|
2013-10-09 09:49:12 +00:00
|
|
|
|
Fixes #11799.
|
2013-08-07 19:43:22 +00:00
|
|
|
|
|
|
|
|
|
*Nicholas Jakobsen*
|
|
|
|
|
|
2013-08-04 12:53:22 +00:00
|
|
|
|
* Fix an issue where `assert_dom_equal` and `assert_dom_not_equal` were
|
|
|
|
|
ignoring the passed failure message argument.
|
|
|
|
|
|
2013-10-09 09:49:12 +00:00
|
|
|
|
Fixes #11751.
|
2013-08-04 12:53:22 +00:00
|
|
|
|
|
|
|
|
|
*Ryan McGeary*
|
|
|
|
|
|
2013-07-25 06:46:54 +00:00
|
|
|
|
* Allow REMOTE_ADDR, HTTP_HOST and HTTP_USER_AGENT to be overridden from
|
|
|
|
|
the environment passed into `ActionDispatch::TestRequest.new`.
|
|
|
|
|
|
2013-10-09 09:49:12 +00:00
|
|
|
|
Fixes #11590.
|
2013-07-25 06:46:54 +00:00
|
|
|
|
|
|
|
|
|
*Andrew White*
|
|
|
|
|
|
2013-07-21 16:10:34 +00:00
|
|
|
|
* Fix an issue where Journey was failing to clear the named routes hash when the
|
|
|
|
|
routes were reloaded and since it doesn't overwrite existing routes then if a
|
|
|
|
|
route changed but wasn't renamed it kept the old definition. This was being
|
|
|
|
|
masked by the optimised url helpers so it only became apparent when passing an
|
|
|
|
|
options hash to the url helper.
|
|
|
|
|
|
|
|
|
|
*Andrew White*
|
|
|
|
|
|
2013-07-16 12:27:22 +00:00
|
|
|
|
* Skip routes pointing to a redirect or mounted application when generating urls
|
|
|
|
|
using an options hash as they aren't relevant and generate incorrect urls.
|
|
|
|
|
|
2013-10-09 09:49:12 +00:00
|
|
|
|
Fixes #8018.
|
2013-07-16 12:27:22 +00:00
|
|
|
|
|
|
|
|
|
*Andrew White*
|
|
|
|
|
|
2013-07-12 07:37:15 +00:00
|
|
|
|
* Move `MissingHelperError` out of the `ClassMethods` module.
|
|
|
|
|
|
|
|
|
|
*Yves Senn*
|
|
|
|
|
|
2013-05-16 13:37:19 +00:00
|
|
|
|
* Fix an issue where rails raise exception about missing helper where it
|
|
|
|
|
should throw `LoadError`. When helper file exists and only loaded file from
|
|
|
|
|
this helper does not exist rails should throw LoadError instead of
|
|
|
|
|
`MissingHelperError`.
|
|
|
|
|
|
|
|
|
|
*Piotr Niełacny*
|
|
|
|
|
|
2013-07-07 22:32:22 +00:00
|
|
|
|
* Fix `ActionDispatch::ParamsParser#parse_formatted_parameters` to rewind body input stream on
|
|
|
|
|
parsing json params.
|
|
|
|
|
|
2013-10-09 09:49:12 +00:00
|
|
|
|
Fixes #11345.
|
2013-07-07 22:32:22 +00:00
|
|
|
|
|
|
|
|
|
*Yuri Bol*, *Paul Nikitochkin*
|
|
|
|
|
|
2013-06-26 20:59:16 +00:00
|
|
|
|
* Ignore spaces around delimiter in Set-Cookie header.
|
|
|
|
|
|
|
|
|
|
*Yamagishi Kazutoshi*
|
|
|
|
|
|
2013-07-03 01:59:59 +00:00
|
|
|
|
* Remove deprecated Rails application fallback for integration testing, set
|
|
|
|
|
`ActionDispatch.test_app` instead.
|
|
|
|
|
|
|
|
|
|
*Carlos Antonio da Silva*
|
|
|
|
|
|
2013-07-02 03:09:11 +00:00
|
|
|
|
* Remove deprecated `page_cache_extension` config.
|
|
|
|
|
|
|
|
|
|
*Francesco Rodriguez*
|
|
|
|
|
|
2013-07-02 01:19:32 +00:00
|
|
|
|
* Remove deprecated constants from Action Controller:
|
|
|
|
|
|
|
|
|
|
ActionController::AbstractRequest => ActionDispatch::Request
|
|
|
|
|
ActionController::Request => ActionDispatch::Request
|
|
|
|
|
ActionController::AbstractResponse => ActionDispatch::Response
|
|
|
|
|
ActionController::Response => ActionDispatch::Response
|
|
|
|
|
ActionController::Routing => ActionDispatch::Routing
|
|
|
|
|
ActionController::Integration => ActionDispatch::Integration
|
|
|
|
|
ActionController::IntegrationTest => ActionDispatch::IntegrationTest
|
|
|
|
|
|
|
|
|
|
*Carlos Antonio da Silva*
|
|
|
|
|
|
2013-06-25 22:34:20 +00:00
|
|
|
|
* Fix `Mime::Type.parse` when bad accepts header is looked up. Previously it
|
|
|
|
|
was setting `request.formats` with an array containing a `nil` value, which
|
|
|
|
|
raised an error when setting the controller formats.
|
2013-06-18 21:22:30 +00:00
|
|
|
|
|
2013-10-09 09:49:12 +00:00
|
|
|
|
Fixes #10965.
|
2013-06-16 14:39:03 +00:00
|
|
|
|
|
2013-06-25 22:34:20 +00:00
|
|
|
|
*Becker*
|
2013-06-16 14:39:03 +00:00
|
|
|
|
|
2013-06-25 05:04:26 +00:00
|
|
|
|
* Merge `:action` from routing scope and assign endpoint if both `:controller`
|
|
|
|
|
and `:action` are present. The endpoint assignment only occurs if there is
|
|
|
|
|
no `:to` present in the options hash so should only affect routes using the
|
2013-06-25 10:25:03 +00:00
|
|
|
|
shorthand syntax (i.e. endpoint is inferred from the path).
|
2013-06-25 05:04:26 +00:00
|
|
|
|
|
2013-10-09 09:49:12 +00:00
|
|
|
|
Fixes #9856.
|
2013-06-25 05:04:26 +00:00
|
|
|
|
|
|
|
|
|
*Yves Senn*, *Andrew White*
|
|
|
|
|
|
2013-11-28 16:21:18 +00:00
|
|
|
|
* Action View extracted from Action Pack.
|
2013-06-17 00:37:23 +00:00
|
|
|
|
|
2013-06-20 17:06:52 +00:00
|
|
|
|
*Piotr Sarnacki*, *Łukasz Strzałkowski*
|
2013-04-18 16:11:12 +00:00
|
|
|
|
|
2013-11-21 17:10:38 +00:00
|
|
|
|
* Fix removing trailing slash for mounted apps.
|
|
|
|
|
|
|
|
|
|
Fixes #3215.
|
2013-06-21 06:51:28 +00:00
|
|
|
|
|
|
|
|
|
*Piotr Sarnacki*
|
|
|
|
|
|
2013-04-29 16:06:45 +00:00
|
|
|
|
Please check [4-0-stable](https://github.com/rails/rails/blob/4-0-stable/actionpack/CHANGELOG.md) for previous changes.
|