2012-01-19 2 views
0

Я хотел бы изменить приведенную ниже ссылку на форму, которая отправляет параметры формы моему контроллеру, чтобы отправить электронное письмо ... текущая ссылка работает и отправляет электронное письмо ...Присоединение формы электронного письма к контроллеру

<%= button_to 'Hello', contact_pages_path, :method => :put %> 

в Мой контроллер у меня есть:

def contact 
    Contact.contact_form.deliver 
end 

Мои Mailer:

class Contact < ActionMailer::Base 
    default from: "****" 
    default to: "****" 

    def contact_form 
    mail(:subject => "Registered") 
    end 


end 

и в моих маршрутов я есть:

resources :pages do 
    put :contact, :on => :collection 
    end 

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

ответ

0
<%= form_tag(contact_pages_path, :method => "post") do %> 
    <%= text_field_tag "article", "firstname" %> 
    <%= submit_tag("Search") %> 
<% end -%> 

При отправке он будет идти к contact_pages_path и в контроллере попробовать params[:article], поэтому его значение должно быть «первым именем».

1

Вы можете создать пользовательские формы с помощью form_tag, а затем использовать text_area_tag, чтобы взять его в тело. Пока вы укажете ему имя, оно будет отправлено в params. Пример (с использованием HAML):

= form_tag contact_pages_path, :method => :put 
    = text_area_tag "body" 
    = submit_tag "Send" 

И тогда в вашем контроллере вы можете получить доступ к тексту в теле с params[:body].

Посмотрите here для получения дополнительной информации о text_area_tag (можно воспользоваться многими вариантами, которые вы, возможно, захотите использовать), и вы также можете прочитать больше на form_tag.

Это также не требует, чтобы вы сделали дополнительную модель.

0

попробовать этот

В Еврорадио файле

<%= form_tag(contact_pages_path, :method => "post") do %> 
    From : <%= text_field_tag "from_email", "" %> <br/> 
    To : <%= text_field_tag "to_email", "" %> <br/> 
    Message:<br/> 
    <%= = text_area_tag "message" %> 
    <%= submit_tag "send" %> 
<% end %> 

в действии

def contact 
from_email = params[:from_email] 
to_email = params[:to_email] 
message = params[:message] 

// do operation to send the mail 
end