Module: ActionView::Helpers::UrlHelper
- Defined in:
- lib/action_view/helpers/url_helper.rb
Overview
Provides a set of methods for making easy links and getting urls that depend on the controller and action. This means that you can use the same format for links in the views that you do in the controller. The different methods are even named synchronously, so link_to uses that same url as is generated by url_for, which again is the same url used for redirection in redirect_to.
Instance Method Summary collapse
-
#link_to(name, options = {}, html_options = {}, *parameters_for_method_reference) ⇒ Object
Creates a link tag of the given
name
using an URL created by the set ofoptions
. -
#link_to_image(src, options = {}, html_options = {}, *parameters_for_method_reference) ⇒ Object
Creates a link tag to the image residing at the
src
using an URL created by the set ofoptions
. -
#link_to_unless_current(name, options = {}, html_options = {}, *parameters_for_method_reference) ⇒ Object
Creates a link tag of the given
name
using an URL created by the set ofoptions
, unless the current controller, action, and id are the same as the link’s, in which case only the name is returned (or the given block is yielded, if one exists). -
#mail_to(email_address, name = nil, html_options = {}) ⇒ Object
Creates a link tag for starting an email to the specified
email_address
, which is also used as the name of the link unlessname
is specified. -
#url_for(options = {}, *parameters_for_method_reference) ⇒ Object
Returns the URL for the set of
options
provided.
Instance Method Details
#link_to(name, options = {}, html_options = {}, *parameters_for_method_reference) ⇒ Object
Creates a link tag of the given name
using an URL created by the set of options
. See the valid options in classes/ActionController/Base.html#M000021. It’s also possible to pass a string instead of an options hash to get a link tag that just points without consideration. The html_options have a special feature for creating javascript confirm alerts where if you pass :confirm => ‘Are you sure?’, the link will be guarded with a JS popup asking that question. If the user accepts, the link is processed, otherwise not.
19 20 21 22 23 24 25 26 |
# File 'lib/action_view/helpers/url_helper.rb', line 19 def link_to(name, = {}, = {}, *parameters_for_method_reference) convert_confirm_option_to_javascript!() unless .nil? if .is_a?(String) content_tag "a", name, ( || {}).merge({ "href" => }) else content_tag("a", name, ( || {}).merge({ "href" => url_for(, *parameters_for_method_reference) })) end end |
#link_to_image(src, options = {}, html_options = {}, *parameters_for_method_reference) ⇒ Object
Creates a link tag to the image residing at the src
using an URL created by the set of options
. See the valid options in classes/ActionController/Base.html#M000021. It’s also possible to pass a string instead of an options hash to get a link tag that just points without consideration. The html_options
works jointly for the image and ahref tag by letting the following special values enter the options on the image and the rest goes to the ahref:
-
alt
- If no alt text is given, the file name part of thesrc
is used (capitalized and without the extension) -
size
- Supplied as “XxY”, so “30x45” becomes width=“30” and height=“45” -
border
- Is set to 0 by default -
align
- Sets the alignment, no special features
The src
can be supplied as a…
-
full path, like “/my_images/image.gif”
-
file name, like “rss.gif”, that gets expanded to “/images/rss.gif”
-
file name without extension, like “logo”, that gets expanded to “/images/logo.png”
42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 |
# File 'lib/action_view/helpers/url_helper.rb', line 42 def link_to_image(src, = {}, = {}, *parameters_for_method_reference) = { "src" => src.include?("/") ? src : "/images/#{src}" } ["src"] = ["src"] + ".png" unless ["src"].include?(".") if ["alt"] ["alt"] = ["alt"] .delete "alt" else ["alt"] = src.split("/").last.split(".").first.capitalize end if ["size"] ["width"], ["height"] = ["size"].split("x") .delete "size" end if ["border"] ["border"] = ["border"] .delete "border" else ["border"] = "0" end if ["align"] ["align"] = ["align"] .delete "align" end link_to(tag("img", ), , , *parameters_for_method_reference) end |
#link_to_unless_current(name, options = {}, html_options = {}, *parameters_for_method_reference) ⇒ Object
Creates a link tag of the given name
using an URL created by the set of options
, unless the current controller, action, and id are the same as the link’s, in which case only the name is returned (or the given block is yielded, if one exists). This is useful for creating link bars where you don’t want to link to the page currently being viewed.
77 78 79 80 81 82 83 84 85 86 87 |
# File 'lib/action_view/helpers/url_helper.rb', line 77 def link_to_unless_current(name, = {}, = {}, *parameters_for_method_reference) () if destination_equal_to_current() block_given? ? yield(name, , , *parameters_for_method_reference) : html_escape(name) else link_to name, , , *parameters_for_method_reference end end |
#mail_to(email_address, name = nil, html_options = {}) ⇒ Object
Creates a link tag for starting an email to the specified email_address
, which is also used as the name of the link unless name
is specified. Additional HTML options, such as class or id, can be passed in the html_options
hash.
91 92 93 |
# File 'lib/action_view/helpers/url_helper.rb', line 91 def mail_to(email_address, name = nil, = {}) content_tag "a", name || email_address, .merge({ "href" => "mailto:#{email_address}" }) end |
#url_for(options = {}, *parameters_for_method_reference) ⇒ Object
Returns the URL for the set of options
provided. See the valid options in classes/ActionController/Base.html#M000021
9 10 11 12 |
# File 'lib/action_view/helpers/url_helper.rb', line 9 def url_for( = {}, *parameters_for_method_reference) if Hash === then = { :only_path => true }.merge() end @controller.send(:url_for, , *parameters_for_method_reference) end |