Screencast: Einführung in Draper
Draper ist ein gem mit dem das Decorator Pattern auf domain-getriebene Modelle auf einfache Weise angewendet werden kann. Dabei werden die meisten Helfer in ein objekt-orientieren Ansatz umgewandelt, Filter auf dem Presentation-Layer ermöglicht und eine Schnittstelle zwischen den Controllern und Views zur Verfügung gestellt. Ryan zeigt in diesem Screencast wie es installiert, konfiguriert und benutzt wird.
Downloads in verschiedenen Formaten:
Resourcen:
bash
rails g draper:decorator user
Gemfile
gem 'draper'
app/decorators/user_decorator.rb
class UserDecorator < ApplicationDecorator
decorates :user
allows :username
def avatar
site_link h.image_tag("avatars/#{avatar_name}", class: "avatar")
end
def linked_name
site_link(model.full_name.present? ? model.full_name : model.username)
end
def website
handle_none model.url do
h.link_to model.url, model.url
end
end
def twitter
handle_none model.twitter_name do
h.link_to model.twitter_name, "http://twitter.com/#{model.twitter_name}"
end
end
def bio
handle_none model.bio do
markdown(model.bio)
end
end
def member_since
model.created_at.strftime("%B %e, %Y")
end
private
def handle_none(value)
if value.present?
yield
else
h.content_tag :span, "None given", class: "none"
end
end
def site_link(content)
h.link_to_if model.url.present?, content, model.url
end
def avatar_name
if model.avatar_image_name.present?
model.avatar_image_name
else
"default.png"
end
end
end
app/decorators/application_decorator.rb
class ApplicationDecorator < Draper::Base
def markdown(text)
Redcarpet.new(text, :hard_wrap, :filter_html, :autolink).to_html.html_safe
end
end
app/controllers/users_controller.rb
def show @user = UserDecorator.find(params[:id]) end
users/show.html.erb
<div id="profile">
<%= @user.avatar %>
<h1><%= @user.linked_name %></h1>
<dl>
<dt>Username:</dt>
<dd><%= @user.username %></dd>
<dt>Member Since:</dt>
<dd><%= @user.member_since %></dd>
<dt>Website:</dt>
<dd><%= @user.website %></dd>
<dt>Twitter:</dt>
<dd><%= @user.twitter %></dd>
<dt>Bio:</dt>
<dd><%= @user.bio %></dd>
</dl>
</div>
Eingestellt am 03.10.2011 um 20:24
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
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
