【发布时间】:2011-12-14 23:53:35
【问题描述】:
在 Rails3 中,有没有一种方法可以检查我现在正在呈现的页面是否是从同一个应用程序请求的,而不使用硬编码的域名?
我目前有:
def back_link(car_id = '')
# Check if search exists
uri_obj = URI.parse(controller.request.env["HTTP_REFERER"]) if controller.request.env["HTTP_REFERER"].present?
if uri_obj.present? && ["my_domain.com", "localhost"].include?(uri_obj.host) && uri_obj.query.present? && uri_obj.query.include?('search')
link_to '◀ '.html_safe + t('back_to_search'), url_for(:back) + (car_id.present? ? '#' + car_id.to_s : ''), :class => 'button grey back'
end
end
但这不会检查“www”。在域和所有其他可能的情况之前。
如果我能找出上一页中使用的特定控制器和操作(引用者),那也很好。
【问题讨论】:
-
注意,所有浏览器都不会发送referer信息
-
有没有具体的不发送referer的?
标签: ruby-on-rails ruby-on-rails-3 request referrer