aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rwxr-xr-xactionpack/lib/action_controller/base.rb9
-rw-r--r--activesupport/lib/active_support/inflector.rb3
2 files changed, 10 insertions, 2 deletions
diff --git a/actionpack/lib/action_controller/base.rb b/actionpack/lib/action_controller/base.rb
index 0c229fda8d..f62a5502b4 100755
--- a/actionpack/lib/action_controller/base.rb
+++ b/actionpack/lib/action_controller/base.rb
@@ -425,6 +425,15 @@ module ActionController #:nodoc:
#
# url_for :controller => 'posts', :action => nil
#
+ # If you explicitly want to create a URL that's almost the same as the current URL, you can do so using the
+ # :overwrite_params options. Say for your posts you have different views for showing and printing them.
+ # Then, in the show view, you get the URL for the print view like this
+ #
+ # url_for :overwrite_params => { :action => 'print' }
+ #
+ # This takes the current URL as is and only exchanges the action. In contrast, <tt>url_for :action => 'print'</tt>
+ # would have slashed-off the path components are the changed action.
+ #
# Instead of passing an options hash, you can also pass a method reference in the form of a symbol. Consider this example:
#
# class WeblogController < ActionController::Base
diff --git a/activesupport/lib/active_support/inflector.rb b/activesupport/lib/active_support/inflector.rb
index f5c92cf4d9..087c883b0b 100644
--- a/activesupport/lib/active_support/inflector.rb
+++ b/activesupport/lib/active_support/inflector.rb
@@ -134,8 +134,7 @@ module Inflector
end
def foreign_key(class_name, separate_class_name_and_id_with_underscore = true)
- Inflector.underscore(Inflector.demodulize(class_name)) +
- (separate_class_name_and_id_with_underscore ? "_id" : "id")
+ underscore(demodulize(class_name)) + (separate_class_name_and_id_with_underscore ? "_id" : "id")
end
def constantize(camel_cased_word)