2015-03-04 3 views
1

Я использую Devise для приглашения. Мы используем разные поддомены типа test1.domain.com, test2.domain.com и т. Д. В одном приложении rails и хотели бы, чтобы URL-адрес приглашения мы отправляли пользователям, чтобы это отразить.Как изменить URL, используемый в accept_invitation_url динамически в Devise Invitable?

Поскольку значение, как представляется, на основе конфигурации вар в конфигурации/production.rb:

config.action_mailer.default_url_options = { host: 'www.domain.com' } 

Это не для меня ясно, что лучший способ изменить URL, который используется в представлении электронной почты:

<%= link_to t("devise.mailer.invitation_instructions.accept"), accept_invitation_url(@resource, :invitation_token => @token) %> 

Я не мог найти источник accept_invitation_url, поэтому я даже не уверен, где он установлен.

Любая помощь очень ценится!

ответ

2

Rookie ошибка:

Хитрость в том, чтобы не пытаться искать это как изобрести invitable вопрос и более общего ActionMailer вопрос, который привел меня к этому простое решение: http://excid3.com/blog/change-actionmailer-email-url-host-dynamically/

В основном просто сбросить url в прикладном контроллере с любой логической вы хотите:

before_filter :set_mailer_host 

def set_mailer_host 
    ActionMailer::Base.default_url_options[:host] = request.host_with_port 
end 
Смежные вопросы