Rails3 - рефакторинг перенаправления вызова - PullRequest
0 голосов
/ 16 декабря 2010

Рефакторинг это:

redirect_to "http://#{@school.id}" + '.' + request.domain + request.port_string + '/'

То есть внутри контроллера школы:

def create
    @school = School.new(params[:school]) 

    if @school.save
      redirect_to "http://#{@school.id}" + '.' + request.domain + request.port_string + '/'
    else
      render "new", :layout => nil
    end
end

Чтобы он перенаправил на:

subdomain.domain.dom/

Маршруты:

ресурсы: школы root: to => "schools # show"

Выполнено попыток:

redirect_to(:host=>@school.id + '.' + request.domain + request.port_string)

Ошибка, так как она перенаправляет на http://subdomain.domain.dom/schools

ИКак передать: уведомление?

У меня это в представлении:

<% if flash[:notice] -%>
    <div id="info_panel">
    <%= flash[:notice] -%>
    </div>
<% end -%>

И это в контроллере:

flash[:notice] = "School created"
redirect_to(school_base(@school.id))                  

1 Ответ

1 голос
/ 16 декабря 2010
redirect_to "http://#{@school.id}.#{request.domain}#{request.port_string}/"

Если вы будете использовать это регулярно, вы можете рассмотреть возможность добавления метода в ApplicationController в соответствии с:

def url_for_school(school)
  "http://#{school.id}.#{request.domain}#{request.port_string}/"
end
helper_method :url_for_school
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...