2015-09-17 3 views
0

Я пытаюсь отправить электронное письмо на существующий вид, который был создан до того, как понадобится почтовая программа. Я использую устаревший код и уже настроил свою почтовую программу и контроллер. У меня есть что-то вроде этого:Rails отправить почту

<% link_to 'blah', 
    { :controller => '/some_controller', 
    :action => 'deliver_email', 
    :purchase_id => 'blah.to_id 
    } 

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

Я не хочу создавать другое представление, просто отправить на существующую страницу (другое представление), где этот код необходим, но без использования запроса GET. Это должно быть POST.

ответ

0

Вы можете перенаправить в рамках действия deliver_email после отправки электронного письма.

def deliver_email 
    YourMailer.mailer_action(@user).deliver_now 
    redirect_to your_redirect_path 
end 
0

Вы можете использовать: удаленный вариант в link_to helper. Это делает ваш link_to как ajax, поэтому вы можете отвечать на javascript без перенаправления. проверьте working with javascript in rails от направляющих направляющих. Я не тестировал, но код может выглядеть следующим образом.

вид:

<% link_to 'blah', controller: '/some_controller', action: 'deliver_email', purchase_id: blah.to_id, remote: true %> 

контроллер:

# app/controllers/some_controller.rb 
def deliver_email 
    YourMailer.mailer_action(@user).deliver_now 
    respond_to do |format| 
    format.js 
    end 
end 

JS:

# app/views/some/deliver_email.js.erb 
alert("Success");