我不确定我是否正确地用了这个标题,但我想在我的索引页面上有一个简短的联系表版本。问题是较短的版本仍然期望与长版本相同的验证,并且在出现错误时重定向到联系人/新路径。我将如何处理这样的情况;因为这个简短的联系表格需要与长版本不同的行为,我是否必须以某种方式一起制作不同的联系表格?任何有关如何执行此操作的帮助或建议将不胜感激。
简短:
这是在根页面中
<%= simple_form_for @contact, :html => {:class => 'form-horizontal' } do |f| %>
<div class="form-group">
<div class="control-label col-sm-3">
<%= f.label :firstName, 'Name' %>
</div>
<div class="col-sm-6">
<%= f.input_field :firstName, class: "form-control", placeholder: "Name" %><br/>
</div>
</div>
<div class="form-group">
<div class="control-label col-sm-3">
<%= f.label :email, 'Email' %><br/>
</div>
<div class="col-sm-6">
<%= f.email_field :email, class: "form-control", placeholder: "Email" %><br/>
</div>
</div>
<div class="form-group">
<div class="control-label col-sm-3">
<%= f.label :phoneNumber, 'Phone' %>
</div>
<div class="col-sm-6">
<%= f.input_field :phoneNumber, class: "form-control", placeholder: "Phone" %><br/>
</div>
</div>
<div class="form-group">
<div class="col-sm-6 col-sm-offset-3">
<%= f.button :submit, 'Submit Request', :class=> "btn btn-primary" %>
</div>
</div>
<% end %>
模型
class Contact < MailForm::Base
validates_presence_of :firstName, :lastName, :email, :budget, :message => "Can't Be Blank"
attribute :firstName
validates_format_of :firstName, :with => /\A([a-z]|[A-Z])/i
attribute :lastName
validates_format_of :lastName, :with => /\A([a-z]|[A-Z])/i
attribute :company
validates_format_of :company, :with => /\A([a-z]|[A-Z])/i,
:allow_blank => true
attribute :email
validates_format_of :email, :with => /\A[\w+\-.]+@[a-z\d\-]+(\.[a-z]+)*\.[a-z]+\z/i,
:message => "Invalid Format"
attribute :phoneNumber
validates_format_of :phoneNumber, :with => /\(?([0-9]{3})\)?([ .-]?)([0-9]{3})\2([0-9]{4})/i,
:allow_blank => true,
:length => { :minimum => 10, :maximum => 31 },
:message => "Invalid Format"
attribute :requestedArea, :validate => true
validates_format_of :requestedArea, :with => /\A([a-z]|[A-Z])/i
attribute :requestedState
validates_format_of :requestedState, :with => /\A([a-z]|[A-Z])/i,
:allow_blank => true
attribute :requestedCity
validates_format_of :requestedCity, :with => /\A([a-z]|[A-Z])/i,
:allow_blank => true
attribute :contactMethod
attribute :budget, :validate => true
attribute :numberOfRooms
attribute :numberOfOccupants
attribute :purpose
attribute :pets
attribute :petType
attribute :numberOfPets
attribute :arrivalDate
attribute :departureDate
validates_format_of :departureDate, :with => /\d{2}\/\d{2}\/\d{4}/i,
:allow_blank => true
def headers
{
:subject => "Quote Requested!",
:to => "anthonydevenuto@gmail.com",
:from => %(#{email})
}
end
end
控制器
class ContactsController < ApplicationController
def new
@contact = Contact.new
end
def create
@contact = Contact.new(params[:contact])
# @contact.request = request
if @contact.deliver
flash[:notice] = 'Thank you for your request. We will contact you soon!'
redirect_to root_path
else
flash.now[:error] = 'Cannot send message.'
render :new
end
end
end