2014-01-23 1 views
0

Я перенаправлять в рельсах, используя строку типа так:Как получить redirect_to для изменения хоста при использовании пути в виде строки?

path = "/blerg/blergs/blergs/blergs" 

domain = "www.google.com" 

Так в контроллере я нахожусь перенаправлять так:

redirect_to path, :status => :found, :host => domain 

Проблема домен не меняется, это оставаясь таким же, как домен приложения. Как перенаправить с параметром хоста при использовании строки в качестве пути?

Причина Я делаю это, чтобы избежать этой ошибки безопасности, путь имеет некоторые Params в нем тоже: http://brakemanscanner.org/docs/warning_types/redirect/

+0

я получить это право: 1) вы хотите добавить ': параметр host' (хотя он не нужен, потому что он не меняется) по соображениям безопасности. 2) ваш параметр ': path' - это строка. 3) ваш существующий 'redirect_to' не включает параметр': host' соответственно. Таким образом, вам нужен другой способ реализации 'redirect_to'админга параметра': host' –

ответ

2

Как вы можете видеть here, когда вы используете строковые пути, рельсы используют домен запроса.

один способ сказать рельсам, что URL-адрес вы передаете в другом домене, чтобы установить протокол:

 url = "http://#{another_domain_url}" 
    redirect_to url 

Если вы хотите использовать хэш, вы можете переместить путь к :host ключа (не испытания):

 redirect_to :status => :found, :host => "#{domain}#{path}" 
-1

Вы можете сделать это следующим образом:

redirect_to "http://#{domain}#{path}" 
+0

Это именно то, чего я не хочу делать, поэтому я сказал это и связал его с причиной. – Smickie