Screencast: Validieren mit Rails 3
Rails 3 bietet viel Neues bzgl. Validierungen. Ryan zeigt diese Woche wie die Neuerungen benutzt und komplexe Validierungen aufgeräumt werden können.
Download:
Download (14.4 MB, 9:53)
Alternativer Download für iPod & Apple TV (14.3 MB, 9:53)
Resourcen:
- Rails 3.0: Third beta release
- dynamic_form
- validates :rails_3, :awesome => true
- Full episode source code
Quellcode:
gem install rails --pre gem cleanup rails store cd store rails g scaffold user name:string email:string rake db:migrate
<!-- users/_form.html.erb -->
<%= form_for(@user) do |f| %>
<%= render "shared/error_messages", :target => @user %>
<div class="field">
<%= f.label :name %><%= mark_required(@user, :name) %><br />
<%= f.text_field :name %>
</div>
<div class="field">
<%= f.label :email %><%= mark_required(@user, :email) %><br />
<%= f.text_field :email %>
</div>
<div class="actions">
<%= f.submit %>
</div>
<% end %>
<!-- shared/_error_messages.html.erb -->
<% if target.errors.any? %>
<div id="errorExplanation">
<h2><%= pluralize(target.errors.count, "error") %> prohibited this record from being saved:</h2>
<ul>
<% target.errors.full_messages.each do |msg| %>
<li><%= msg %></li>
<% end %>
</ul>
</div>
<% end %>
# application_helper.rb
def mark_required(object, attribute)
"*" if object.class.validators_on(attribute).map(&:class).include? ActiveModel::Validations::PresenceValidator
end
# models/user.rb
validates :email, :presence => true, :uniqueness => true, :email_format => true
# lib/email_format_validator.rb
class EmailFormatValidator < ActiveModel::EachValidator
def validate_each(object, attribute, value)
unless value =~ /^([^@\s]+)@((?:[-a-z0-9]+\.)+[a-z]{2,})$/i
object.errors[attribute] << (options[:message] || "is not formatted properly")
end
end
end
Eingestellt am 26.04.2010 um 16:42
Kategorie: Tutorials
Suchen auf rubyonrails.de
Tags
2.0 ActiveRecord Ajax Authentication Buch Capistrano Controller Enterprise Event Formulare Gewinnspiel Grundlagen IDE irb jQuery Kochbuch Konferenz MySQL OReilly Passenger Phusion Plugin PragProgs Rails Rails 3 Rails 3.1 RailsWayCon Release Release Candidate Routing Ruby RubyGems rubyonrails.de Ryan Bates Scaffolding Screencast Script-Tip Security Test Tools Tutorial Upgrade Video Views WindowsAktuelle Artikel
- Screencast: RABL – Ruby API Builder Language
- Screencast: JSON Dokumente mit Jbuilder erstellen
- Rails 3.2.1 veröffentlicht
- Screencast: Upgrade auf Rails 3.2
- Ruby on Rails 3.2
- Screencast: Private Pub für Realtime-Events
- Screencast: Pretty URLs mit FriendlyId
- Screencast: HTML Emails mit Rails verschicken
- Screencast: Einstieg in die Rails-Entwicklung
- Frohe Weihnachten!
Artikel Archiv
- February 2012
- January 2012
- December 2011
- November 2011
- October 2011
- September 2011
- August 2011
- July 2011
- June 2011
- May 2011
- April 2011
- March 2011
- February 2011
- January 2011
- December 2010
- November 2010
- October 2010
- September 2010
- August 2010
- July 2010
- June 2010
- May 2010
- April 2010
- March 2010
- February 2010
- January 2010
- December 2009
- November 2009
- October 2009
- September 2009
- August 2009
- July 2009
- May 2009
- April 2009
- March 2009
- February 2009
- December 2008
- November 2008
- August 2008
- July 2008
- June 2008
- May 2008
- March 2008
- February 2008
- January 2008
- December 2007
- November 2007
- October 2007
- September 2007
Aktuelle Rails Version + Abhängigkeiten:
Gem rails-3.0.0actionmailer (= 3.0.0, runtime)
actionpack (= 3.0.0, runtime)
activerecord (= 3.0.0, runtime)
activeresource (= 3.0.0, runtime)
activesupport (= 3.0.0, runtime)
bundler (~> 1.0.0, runtime)
railties (= 3.0.0, runtime)
Rails auf Rubyforge
Rails auf Github
