Я полный новичок в рельсах, и я пытаюсь создать подтверждение для контактной формы. Я запустил код проверки, но если я просто загружу свою страницу контактов и нажму "Отправить", она не будет отображать ошибок проверки.
Вот форма, на мой взгляд:
<%= form_for :message, :id => 'contactForm', :url => { :action => "create" } do |f|-%>
<%= label_tag 'name', 'Name:' %>
<%= f.text_field 'name', :class =>'required requiredField' %>
<%= label_tag 'email', 'Email:' %>
<%= f.email_field 'email', :class =>'required requiredField email' %>
<%= label_tag 'message', 'Message:' %>
<%= f.text_area 'message', :class => 'required requiredField', :rows => 20, :cols => 30 %>
<%= f.submit :class => 'button' do -%>
<a href="#" class="button" style="float:right;"><span>Submit</span></a>
<% end %>
<% end -%>
Контроллер:
class ContactController < ApplicationController
layout "content"
def index
@activeLi = "contact"
end
def new
@message = Message.new
end
def create
@message = Message.new(params[:message])
if @message.valid?
# need to actually send the email message here
flash[:notice] = "Message sent! We will get back to you shortly."
redirect_to root_url
else
render :action => 'new'
end
end
end
Модель:
class Message
include ActiveModel::Validations
include ActiveModel::Conversion
extend ActiveModel::Naming
attr_accessor :name, :email, :message
validates_presence_of :name, :email, :message
validates_length_of :message, :maximum => 4000
def initialize(attributes={})
attributes.each do |name, value|
send("#{name}=", value)
end
end
def persisted?
false
end
end
маршруты:
get "contact/index"
post "contact/create"