版本在
UrlHelper
是在您的视图中可用的。其来源如下:
def url_for(options = {})
options ||= {}
url = case options
when String
escape = true
options
when Hash
options = { :only_path => options[:host].nil? }.update(options.symbolize_keys)
escape = options.key?(:escape) ? options.delete(:escape) : true
@controller.send(:url_for, options)
when :back
escape = false
@controller.request.env["HTTP_REFERER"] || 'javascript:history.back()'
else
escape = false
polymorphic_path(options)
end
escape ? escape_once(url) : url
end
当参数传递给
url_for
是它委托给的哈希
controller.url_for
依次委托给
ActionController::UrlWriter.url_for
.
版本在
ActionView::Helpers::UrlHelper.url_for
然后在使用其他类型的参数调用时添加一些额外的行为。在传递字符串的情况下,它会为您转义。当使用符号:back调用时,它要么链接到引用者(如果可用),要么返回到javascript
history.back()
呼叫。