在Rails 3中联系我们表格

我只想在我的Rails应用程序中使用姓名,电子邮件和消息字段联系我们表单,我不想保存(永久)消息我只想将消息作为我的电子邮件帐户的电子邮件发送。 你能帮助我吗?

谢谢!

在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 %> 

我没有完全测试这段代码,但我只是想让你明白这个想法……

我编写了一个Rails引擎https://github.com/jdutil/contact_us ,您可以轻松地将其放入任何Rails 3+应用程序中。 我没有在表单中添加Name字段,但您可以将repo分叉然后根据您的需要进行修改。 它确实需要Formtasticgem,因为我想要一种简单的方法来吸引人们现有的表单风格。

要安装Engine,请将contact_us gem添加到Gemfile:

 gem 'contact_us', '~> 0.4.0' 

运行bundle和install rake任务:

 $ bundle $ bundle exec rake contact_us:install 

然后,只需修改/config/initializers/contact_us.rb中生成的初始化程序,即可获得要将表单提交发送到的电子邮件。

我制作了一个工作表格,并在博客上发表了这篇文章。该文本是葡萄牙语,但代码本身(大部分)是英文版本http://www.rodrigoalvesvieira.com/formulario-contato-rails/

谢谢!