Направляющие redirect_to “www.somewebsite.com” с ПОЛУЧАЮТ/POST параметры?

Я пытаюсь выпустить redirect_to в одном из моих контроллеров к полностью определенному URL +, я хочу передать в некоторых параметрах

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

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

Существует ли более хороший способ сделать это в направляющих?

5
задан Simone Carletti 7 January 2010 в 08:14
поделиться

3 ответа

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

Пример:

Site A Routes.rb:

...
map.resource whatever
...

Site A Controller:

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

До тех пор, пока веб-сервер SiteB (rails или другой) распознает http://www.siteB.com/whaterver/edit?my_parameter=123, все в порядке.

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

1
ответ дан 14 December 2019 в 04:39
поделиться

Очевидно, что можно передать хост:

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

Смотрите документацию на url_for.

1
ответ дан 14 December 2019 в 04:39
поделиться

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

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

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

6
ответ дан 14 December 2019 в 04:39
поделиться
Другие вопросы по тегам:

Похожие вопросы: