rails 3 mailer получает данные из формы - PullRequest
1 голос
/ 19 октября 2011

У меня есть действие по электронной почте .. простая ссылка:

<%= link_to 'Send offer by mail',  offer_to_mail_car_path(@car) %>

этот должен отправить уведомление на почту администратора, что какой-то клиент предлагает определенную сумму денег для этого автомобиля. Таким образом, клиент должен вставить в форму свою электронную почту и свое предложение. Эти данные не хранятся в базе данных, это просто для отправки электронной почты и очистки. Так что сейчас я получаю электронное письмо с данными об автомобиле, именем, URL-адресами к фотографиям и т. Д., Но как мне создать форму для отображения этих двух полей с электронной почтой клиента и предложениями, как будет выглядеть контроллер и сама ссылка. Спасибо за ваше бесценное время.

контроллер:

def offer_to_mail
    @car = Car.find(params[:id])
    CarMailer.offer_to_mail(@car).deliver
    redirect_to @car, :notice  => "Offer sent."
  end

1 Ответ

4 голосов
/ 19 октября 2011

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

в авто почтальоны сделаю

def request_by_mail(car, your_name, your_message)
    @car = car
    @name = your_name
    @message = your_message
    @url  = "http://cardealer.com/cars"
  #  attachments["rails.png"] = File.read("#{Rails.root}/public/images/rails.png")
    mail(:to => 'rmagnum2002@gmail.com',
         :subject => "Car details request from a client",
         :date => Time.now
         )
  end

в cars_controller

def request_by_mail
    @car = Car.find(params[:id])
    mail = params[:request_by_mail][:your_mail]
    message = params[:request_by_mail][:your_message]
    CarMailer.request_by_mail(@car, name, message).deliver
    redirect_to @car, :notice  => "Request sent."
  end

и вид, где будет форма:

    <%= form_for :request_by_mail, :url => request_by_mail_car_path(@car), :html => {:method => :get} do |f| %>
                   <p>
                     <b>Your email:</b><br>
                     <%= f.text_field :your_name %>
                   </p>
                   <p>
                     <b>Details about your request:</b><br>
                     <%= f.text_area :your_message %>
                   </p>
                     <%= f.submit "Send details request" %>
                 <% end %>

теперь шаблон электронной почты request_by_mail.html.erb

<!DOCTYPE html>
<html>
  <head>
    <meta content="text/html; charset=UTF-8" http-equiv="Content-Type" />
  </head>
  <body>
    <h3>A client has requested details about car with stock number: <%= @car.id %></h3>

<% for asset in @car.assets %>
    <img alt="photos" src="http://localhost:3002<%= asset.asset.url(:thumb) %>">
<% end %>

<p><%= @name %></p>

<p><%= @message %></p>

    <p>
      Car link: <a href="http://localhost:3002/cars/<%= @car.id %>">Go to car</a>
    </p>
  </body>
</html>
...