5

Я пытаюсь выдать redirect_to в одном из моих контроллеров полностью квалифицированного URL + Я хочу передать по некоторым параметрамRails redirect_to "www.somewebsite.com" с параметрами GET/POST?

В контроллере для сайта AI сделать:

redirect_to: "www.siteB.com/my_controller/my_action?my_parameter=123" 

Есть лучший способ сделать это в рельсах?

ответ

1

Вы можете по-видимому, пройти множество:

redirect_to { :host => "www.siteB.com", :controller => "my_controller", :action => "my_action", :id => 123 } 

Ознакомьтесь с документацией для url_for.

+1

Данное решение предполагает, что route.rb SiteA имеет маршрут, соответствующий этой контрольной/активной паре. Это не проблема, если вы сохранили маршруты по умолчанию. – EmFi

6

Если SiteB работает же приложения (т.е. маршруты одинаковы для этого сервера), то вы можете создать редирект вы описываете с:

redirect_to :host => "www.siteB.com", 
      :controller => "my_controller", 
      :action => "my_action", 
      :my_parameter => 123 

Обратите внимание, что любые ключи не обрабатываемые url_for автоматически закодированные как параметры.

+0

Это решение предполагает, что route.rb SiteA имеет маршрут, соответствующий этой контрольной/активной паре. Это не проблема, если вы сохранили маршруты по умолчанию. – EmFi

1

Вдоль линий других ответов. Если вы настроили контроллер, определяющий путь в ваших route.rb сайта A, вы можете использовать сгенерированные помощники URL. Просто переопределите: host в качестве аргумента.

Пример:

сайт A routes.rb:

... 
map.resource whatever 
... 

сайта Контроллер:

... 
redirect_to edit_whatever_url(:host => "www.siteB.com", :my_parameter => 123) 
... 

До тех пор, как веб-сервер SITEB (в рельсах или иным образом) признает http://www.siteB.com/whaterver/edit?my_parameter=123 вы» хорошо.

Оговорка: Имейте в виду, что перенаправление сообщения с 302 имеет конкретные последствия, как определено в RFC 2616. В двух словах это означает, что пользователю будет предложено подтвердить свое сообщение на новый URL-адрес, прежде чем перенаправленная почта сможет преуспеть.

Смежные вопросы