Rails redirect_to "www.somewebsite.com" с параметрами GET / POST? - PullRequest
5 голосов
/ 07 января 2010

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

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

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

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

Ответы [ 3 ]

6 голосов
/ 07 января 2010

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

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

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

1 голос
/ 07 января 2010

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

Пример:

Сайт A Routes.rb:

...
map.resource whatever
...

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

...
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-адрес, прежде чем перенаправленный пост может быть успешным.

1 голос
/ 07 января 2010

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

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...