Форма обратной связи в Rails 3 - PullRequest
11 голосов
/ 15 сентября 2010

Мне просто нужна форма для связи с нами с именами, адресами электронной почты и полями сообщений в моем приложении Rails, я не хочу сохранять (навсегда) сообщение, я просто хочу отправить сообщение как письмо для моей учетной записи электронной почты,Вы можете мне помочь?

Спасибо!

Ответы [ 3 ]

15 голосов
/ 16 сентября 2010

В Rails3 вы можете создать модель ActiveModel:

# /app/models/contact_us.rb
class ContactUs

  include ActiveModel::Validations
  include ActiveModel::Conversion
  extend ActiveModel::Naming

  attr_accessor :name, :email, :message

  def initialize(attributes = {})
    attributes.each do |name, value|
      send("#{name}=", value)
    end
  end

  def persisted?
    false
  end
end

, затем почтовую программу:

# /app/mailer/contact_us_mailer.rb
class ContactUsMailer < ActionMailer::Base

  default :to => "your@address.com"

  def send(message)
    @message = message
    mail( :subject => @message.subject, :from => @message.email ) do |format|
      format.text
    end
  end
end

и представление:

# /app/views/contact_us_mailer/sent.text.erb
Message sent by <%= @message.name %>
<%= @message.message %>

Я не сделалне проверяйте этот код точно, но я просто хочу, чтобы вы поняли идею ...

7 голосов
/ 18 июля 2011

Я написал Rails Engine https://github.com/jdutil/contact_us, который вы можете легко вставить в любое приложение Rails 3+.Я не добавил поле «Имя» в форму, но вы можете раскошелиться на репо, а затем изменить его в соответствии с вашими потребностями.Для этого требуется гем Formtastic, поскольку я хотел простой способ подключиться к существующим стилям форм людей.

Чтобы установить Engine, добавьте гем contact_us в свой Gemfile:

gem 'contact_us', '~> 0.4.0'

Запустить комплекти задача установки граблей:

$ bundle
$ bundle exec rake contact_us:install

Затем просто измените сгенерированный инициализатор в /config/initializers/contact_us.rb, чтобы получить электронное письмо, на которое вы хотите отправить отправленные формы.

3 голосов
/ 25 июля 2011

Я сделал рабочую форму и написал об этом в блоге .. текст на португальском, но сам код (в основном) на английском http://www.rodrigoalvesvieira.com/formulario-contato-rails/

Спасибо! * * 1004

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...