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