Rails: перенаправление на текущий путь, но на другой поддомен

Я думаю, это должно быть довольно просто, но я не знаю, как это делается ...

Как вы пишете фильтр до, который будет проверять, является ли текущий запрос для определенных поддоменов, и если это так, перенаправить его на тот же URL-адрес, но на другой поддомен?

То есть:blog.myapp.com/posts/1 хорошо ноblog.myapp.com/products/123 перенаправляет наwww.myapp.com/products/123.

Я думал что-то вроде ...

class ApplicationController < ActionController::Base
  before_filter :ensure_domain

  protected
  def ensure_domain
    if request.subdomain == 'blog' && controller_name != 'posts'
      redirect_to # the same url but at the 'www' subdomain...
    end
  end
end

Как ты пишешь этот редирект?

Ответы на вопрос(2)

щи

redirect_to subdomain: 'www', :controller => 'www', :action => "index"

Это будет вызвано для доменного имени, например, foo.apple.com перейдет на www.apple.com

Решение Вопроса

ActionController :: Перенаправление # redirect_to позволяет вам передать абсолютный URL, поэтому проще всего было бы передать ему что-то вроде:

 Andrew15 мая 2012 г., 22:22
Doh! Метод sub - это просто старый метод ruby sub ... хорошо, так что после дальнейших экспериментов это работает, но я должен использовать больше регулярных выражений, чтобы позаботиться об этом.request.url объект дает мне достаточно, чтобы выяснить все остальное, спасибо!
 Andrew15 мая 2012 г., 18:42
А, я не знал.sub метод существовал! Благодарность
 Qwertie17 янв. 2018 г., 00:46
Просто надеюсь, что в твоих URL больше нигде не будет www ...

Ваш ответ на вопрос