如何使用保存到数据库的rails创建联系表单

时间:2014-08-17 10:49:14

标签: ruby-on-rails ruby

我正在尝试创建一个联系我们的样式表单,将信息保存到数据库,并向管理员地址发送电子邮件。我宁愿坚持如何在rails中执行此操作,以便将数据保存到数据库中。我还想实现验证并使用tdd。

1 个答案:

答案 0 :(得分:1)

<强>模型

您需要考虑以下几点:

#config/routes.rb
resources :contact, only: [:new, :create], path_names: { new: "" }

#app/models/contact.rb
Class Contact < ActiveRecord::Base
   validates :name, :email, :message, presence: { message: "You need to fill all the fields!" }
end

#app/controllers/contact_controller.rb
Class ContactController < ApplicationController
    def new 
       @contact = Contact.new
    end

    def create
       @contact = Contact.new(contact_params)
       @contact.save
    end
end

#app/views/contact/new.html.erb
<%= form_for @contact do |c| %>
    <%= c.text_field :name %>
    <%= c.text_field :email %>
    <%= c.text_field :message %>
    <%= c.submit %>
<% end %>

这将使您能够创建contacts数据表,您可以使用rails migration system

创建该数据表

-

电子邮件

如果您想通过电子邮件发送网站管理员,您最好执行以下操作:

#app/models/contact.rb
Class Contact < ActiveRecord::Base
   after_create :send_email

   private

   def send_email
      ... email code here
   end
end

要确定如何发送电子邮件,您需要check out this tutorial