Screencast: Einstieg in die Rails-Entwicklung

Der Einstieg in die Entwicklung mit Ruby on Rails, vor allem für Neulinge, kann unter Umständen überfordernd sein. Um diese Hürde zu meistern zeigt Ryan in dieser Woche wie mit Rails begonnen werden kann, und wo es Informationen zu den verschiedensten Bereichen gibt.

 

Downloads in verschiedenen Formaten:

mp4
mp4
webm
ogg

 

1. Installation

bash

[bash]
brew install git sqlite
rvm install 1.9.3
rvm use 1.9.3 –global
ruby -v
gem install rails
rails -v
[/bash]

2. Tutorials

3. Divide and Conquer

text

[text]
Divide and Conquer
* Ruby
* HTML
* CSS (and SASS)
* JavaScript (and CoffeeScript)
* SQL
[/text]

bash

[bash]
irb
rails console
[/bash]

4. Your Own App

bash

[bash]
rails g model …
rails g controller …
[/bash]

5. Getting Help

Rails 3 Installer für Windows

Um die Entwicklung mit Rails auf Windows-Rechnern zu vereinfachen hat EngineYard einen One-Click-Installer veröffentlicht. Die Installationsroutine bringt alles Nötige, das für die Arbeit mit Rails benötigt wird, mit. Neben dem Railsstack sind auch weitere Komponenten in dem Paket enthalten.

Zu den zusätzlichen Komponenten gehören:

Wie die Installation verläuft und wie die installierten Komponenten überprüft werden können, wird in dem folgendem Screencast gezeigt:

Weitere Details zu dem Installer sind auf der Projektseite erhältlich: http://railsinstaller.org/
Weitere Versionen für Linux und OSX sollen demnächst folgen.

Rails 3 Cheatsheet

Gregg Pollack von EnvyLabs hat ein Cheatsheet für Rails 3 Entwickler veröffentlicht. Es sollte ursprünglich früher erscheinen, aber die Arbeiten an seinen letzten Screencasts haben unerwartet mehr Zeit beansprucht. Auch wenn Rails 3 nun bereits seit einiger Zeit verfügbar ist, ist das Cheatsheet eine gute Quelle um das eine oder andere nachzuschlagen.

Es ist ein umfangreiches Cheatsheet geworden, dass sehr viele Bereiche abdeckt und somit auch für erfahrene Entwickler wertvoll/hilfreich sein wird.

Das PDF ist in sechs Haupt-Bereiche aufgeteilt und jeder Bereich ist in sich nochmal gegliedert:

  1. Routing:
    • Basic Routing
    • Optionale Parameter
    • Redirection
    • Named Routes
    • Rack Routing
    • Constraints
    • Legacy Route
    • Scope
  2. Bundler
    • Bundler Commands
    • Gemfile Syntax
    • Workflow
  3. ActiveRelation
    • Lazy Loading
    • CRUD Methods
    • Chain Methods
    • Chaining
    • (Named) Scopes
    • Deprecated
  4. XSS Protection & UJS
    • XSS Protection
    • Unobtrusive JavaScript
    • HTML5 Custom Data Attributes
    • Deprecated
    • Using JQuery
  5. ActionMailer & ActionController
    • Rails Mail Generator
    • Basic Mailer Syntax
    • Delivering Messages
    • Defaults and Attachements
    • Respond_To and Respond_With
  6. ActiveModel
    • Dirty
    • Validations
    • Serialization
    • Callbacks

Neben dem Umfang hat Gregg auch viel Wert auf das Layout gelegt.

Das Rails 3 Cheatsheet kann unter folgender URL runtergeladen werden: http://blog.envylabs.com/Rails_3_Cheat_Sheets.pdf

Der entsprechende Blogpost mit weiteren Details ist unter folgender Adresse erreichbar: http://blog.envylabs.com/2010/12/rails-3-cheat-sheets/

Dann bleibt uns nur noch übrig euch viel Spaß beim cheaten zu wünschen 🙂

Alle Links zu Rails 3

Ok, es sind sicherlich nicht alle verfügbaren Links, die wir hier für euch sammeln konnten, aber es sollte für jeden etwas dabei sein. Die Links sind in Kategorien aufgeteilt, damit man den entsprechenden Bereich schnell findet, für den man sich interessiert.
Wenn Ihr einen Link vermisst, dann postet ihn einfach als Kommentar.

Allgemeine Übersicht

Rails 3.0 Release Notes: Alle Details zu den Veränderungen im aktuellen Release

Offizielle Rails API: Die gesamte Schnittstellenbeschreibung

Rails API: Durchsuchbare Rails API

Offizielle Rails Dokumentation: Hier findet ihr Infos zu allen Komponenten

RailsPlugins.org: Hier könnt ihr nachschauen ob eure benutzten Plugins in Rails 3 unterstützt werden

Having Ruby on Rails 3 My Way – Ein Tutorial zu Rails 3 mit Mongoid, Haml, jQuery und RSpec mit Factory Girl

The Rails Module (in Rails 3): Nick Quaranto beschreibt ein paar hilfreiche Methoden in Rails Modulen

Rails 3 I18n changes: Eine Übersicht über die Veränderungen bzgl. Internationalisierung

Weitere Linksammlung zu Rails 3: Eine weitere Linkliste die wir euch früher vorgestellt hatten

Screencasts

Ruby on Rails 3 Screencast series: Die offiziellen Screencasts zu Rails von Gregg Pollack

Railscasts zu Rails 3 von Ryan Bates: Die wöchentlich erscheinenen Screencast

TeachMeCode: Weitere Screencastseite

Podcasts

Ruby5 Podcast von und mit Gregg Pollack: Aktuelle Themen rund um das Thema Rails

RubyShow Podcast mit Jason Seifer: Verschiedene Themen rund um das Thema Ruby

ActionController / Rack

Embracing REST with mind, body and soul: Einführung von José Valim in RESTful responders in Rails 3 Controllern

Railscasts #224 Controllers in Rails 3: Screencast zu den Neuerungen in Rails 3 Controllern

Render Options in Rails 3: Yehuda zeigt die verschiedenen Option für das Rendern in Rails 3

Adding Routes for tests / specs with Rails 3: Jeff Dean zeigt die Routen in Specs verifziert werden können

32 Rack Resources to Get You Started: Eine Linksammlung zu rack

ActionMailer

New ActionMailer API in Rails 3.0: Hier zeigt Mikel Lindsaar wie der neue ActionMailer eingesetzt werden kann

A Whole New ActionMailer: In diesem Eintrag schreibt Mikel Lindsaar über die neuen Features in ActionMailer

ActiveRecord/ActiveModel

ActiveModel: Make Any Ruby Object Feel Like ActiveRecord: Yehuda über die Modularität von ActiveModel

Railscasts #219 Active Model: Screencast über die Erstellung von "tabellenlosen" Models

ActiveRelation: ActiveRecord Gets a Facelift: Carl Lerche führt hier in die neue ActiveRecord-Finder-API ein

Active Record Query Interface: Pratik gibt hier einen Überblick über die Veränderungen am ActiveRecord-Query-Interface , die seit Rails 2 vorgenommen wurden

Bundler

Gembundler.com: Die offizielle Projektseite zu Bundler. Hier findet ihr ausreichend Dokumentation zu dem Gem

Library Management Gets an Update in Rails 3: Andre Arko gibt hier einen Überblick über bundler

Railscasts #201 Bundler: Ein Screencast von Ryan zu Bundler und wie es in Rails 3 benutzt wird

AdventuresInCoding.com screencast on Bundler: Ein weiterer Screencast zu bundler

Railties

Rails 3 Internals: Railtie & Creating Plugins: Ilya Grigorik schreibt hier über Railties in Rails 3.

Making generators for Rails 3 with Thor: Ein Tutorial zu den neuen Generatoren und wie man diese in ein gem zusammenfasst

Routes

The Lowdown on Routes in Rails 3: Rizwan Reza zeigt hier ausführlich wie Routen in Rails 3 verwendet werden

Rails Routing from the Outside In: Offizielle Dokumentation zu den neuen Routen

Plugins

Plugin Authors: Toward a Better Future: Yehuda schreibt hier über die Änderungen um Plugins in Rails 3 bnutzen zu können

Customizing Rails Apps with Plugins: Hier gibt José Valim eine Überblick über die Benutzung von Respondern, einfachen Formularen, devise…

Bücher (erschienen/verfügbar)

Rails 3 in a Nutshell: Frei verfügbares Buch zu Rails 3

Rails 3 Upgrade Handbook PDF: Alles rund um das Thema Upgrade auf Rails 3

Ruby on Rails 3: Moderne Webentwicklung mit Ruby: Das erste deutschsprachige Buch zu Rails 3

Ruby on Rails Tutorial: Learn Rails by Example: Weiteres frei verfügbares Buch zu Rails 3

Links für Rails 3

Rails 3 Beta ist verfügbar und es dürfte nicht mehr allzu lange dauern bis die endgültige Version erscheint. Wir hatten bereits ein paar Tips/Links dazu vorgestellt und wollen euch heute eine erweiterte Version anbieten, damit ihr alles Nötige für euer Update zusammenhabt.

Unsere Beiträge:

  1. Screencast: Rails 3 Beta und RVM: http://www.rubyonrails.de/2010/02/screencast-rails-3-beta-und-rvm/
  2. Rails 3.0 Beta veröffentlicht: http://www.rubyonrails.de/2010/02/rails-3-0-beta-veroffentlicht/
  3. Update auf Rails 3 in 25 Minuten: http://www.rubyonrails.de/2010/02/update-auf-rails-3-in-25-minuten/
  4. Artikel zu Rails 3: http://www.rubyonrails.de/2010/01/artikel-zu-rails-3/
  5. Routes in Rails 3: http://www.rubyonrails.de/2009/12/routes-in-rails-3/
  6. Buch: Beginning Rails 3: http://www.rubyonrails.de/2009/11/beginning-rails-3/

Einführungen zu Rails 3:

  1. Rails 3 Introduction: http://omgbloglol.com/post/344792822/the-path-to-rails-3-introduction
  2. The Path to Rails 3: Greenfielding New Apps With The Rails 3 Beta: http://omgbloglol.com/post/371893012/the-path-to-rails-3-greenfielding-new-apps-with-the
  3. http://railsplugins.org/
  4. How To Install Rails 3.0 Beta: http://www.rubyinside.com/how-to-install-rails-3-0-prerelease-beta-2955.html

Rails 3 Tutorials und Blog Posts:

  1. Rails Guide
  2. Edging your way towards Ruby 1.9.1 and Rails 3.0pre
  3. Unobtrusive JavaScript in Rails 3 by Zach Carter
  4. A Fresh Cup: Seed Data in Rails 3 tutorial – feature summary + code example by Mike Gunderloy.
  5. Rails3: Stepping off of the golden path slides by Matt Aimonetti
  6. Rails Magazine – RailsConf 2009 Edition page 5 has a section called The Unofficial Guide to What’s New in Rails 3 by Rupak Ganguly
  7. Jason Ting’s RailsConf 2009 Notes includes some basic notes about Rails 3
  8. Noel Rappin: Railsconf 09 – After the RailsConfening article
  9. Yehuda Katz: Railsconf Wrapup blog – contains links to jQuery talk by Katz at RailsConf 09
  10. How to Begin Playing With Rails 3 by Oscar Del Ben
  11. My Five Favorite Things About Rails 3 by Yehuda Katz
  12. Rails 3: The Great Decoupling by Yehuda Katz
  13. Rails Edge Architecture by Yehuda Katz
  14. How to Build Sinatra on Rails 3 by Yehuda Katz

Update und Vorbereitung bestehender Applikationen

  1. rails_upgrade Plugin: http://github.com/rails/rails_upgrade
  2. 5 Things You Can Do Today to Make Your App Ready for Rails 3: http://www.enlightsolutions.com/articles/five-ways-to-prepare-your-application-for-ruby-on-rails-3-today/
  3. Rails 3 Ready Plugins: http://wiki.rubyonrails.org/rails/version3/plugins_and_gems
  4. How to upgrade plugins to Rails 3.0: http://boldr.net/upgrade-plugins-gems-rails-3/

Rails 3 Präsentationen und Mitschnitte von Konferenzen

  1. Yehuda: What to Expect in Rails 3.0 webcast recording
  2. Scotland on Rails: Yehuda on Rails & Merb Merge video. For more Scotland on Rails videos, check out this Ruby Inside post.
  3. Yehuda Katz on Rails 3 and beyond interview by Mark Coleman
  4. RailsConf: Yehuda – The Russian Doll Pattern video
  5. RailsConf 09: DHH Keynote video – DHH previews unobtrusive javascript, default escaping & more.
  6. Exploring Rails 3 Free Online Conference

Bücher zu Rails 3

  1. Rails Guide
  2. Rails 3 in Action by Yehuda Katz and Mike Gunderloy. Currently available is their Early Access Edition, which gives you access to chapters as they are written.
  3. Beginning Rails 3 by Jeffrey Allan Hardy , Cloves Carneiro Jr. & Rida Al Barazi
  4. Changes in Rails 3.0 for Agile Web Development with Rails Edition 3

Rails 3 Komponenten und Bibliotheken:

  1. ActiveModel: Make Any Ruby Object Feel Like ActiveRecord: http://yehudakatz.com/2010/01/10/activemodel-make-any-ruby-object-feel-like-activerecord/
  2. New ActionMailer API in Rails 3.0: http://lindsaar.net/2010/1/26/new-actionmailer-api-in-rails-3
  3. Generic Actions in Rails 3: http://yehudakatz.com/2009/12/20/generic-actions-in-rails-3/
  4. Active Record Query Interface 3.0: http://m.onkey.org/2010/1/22/active-record-query-interface
  5. Validations in Rails 3.0: http://lindsaar.net/2010/1/31/validates_rails_3_awesome_is_true
  6. Render Options in Rails 3: http://www.engineyard.com/blog/2010/render-options-in-rails-3/
  7. Rails3_DataMapper: http://github.com/dkubb/rails3_datamapper
  8. Rails 3 I18N Changes: http://blog.plataformatec.com.br/2010/02/rails-3-i18n-changes/
  9. Making Generators for Rails 3 With Thor: http://caffeinedd.com/guides/331-making-generators-for-rails-3-with-thor
  10. The Rails Module: http://litanyagainstfear.com/blog/2010/02/03/the-rails-module/

Weitere Rails 3 Beiträge

  1. Internet News: Rails 3 Gets Supersized With Merb
  2. Extending Rails 3 Video
  3. eWeek: Rubyists Unite Ruby on Rails and Merb to Merge in Rails 3
  4. CIO: Rails 3 to add security enhancement
  5. Signed and Permanent Cookies in Rails 3
  6. Yehuda Katz: Rails and Merb Merge
  7. Let Your SQL Growl in Rails 3.0
  8. RubyOnRails.org: Rails + Merb Merge Announcement
  9. How to Install Rails 3.0 Beta on Ubuntu Linux
  10. Webbynode Gets Rails 3 Support for Rapid Deployment

Artikel zu Rails 3

Rails 3 steht vor der Tür und wird jede Menge Neuerungen mitbringen. Maxim C. hat eine Liste mit Links von interessanten Artikeln und Anleitungen zusammengestellt um sich mit dem kommenden Release anzufreunden. Weitere Vorschläge und Empfehlungen sind willkommen.

Die Liste ist in die verschiedenen Bereiche des Frameworks aufgeteilt und chronologisch sortiert.

Router

ActiveRecord

Controller

Generatoren

Rails 3 Applikationen laufen lassen

Auf Rails 3 aktualisieren

Plugin/Gem Kompatiblität

Architektur

Screencast: 7 Sicherheitstips

Auf Screencasts.com ist heute ein weiterer Screencast erschienen. In dieser Folge werden sieben Tips beschrieben um die Sicherheit innerhalb Rails-Applikationen zu erhöhen.

Downloadlinks:

Download (22.2 MB, 14:53)

Alternativer Download for iPod & Apple TV(16.9 MB, 14:53)

Weitere Ressourcen:

  • Rails Security Guide
  • Full episode source code

Links und Quellcodes zu den einzelnen Beispielen:

1 Mass Assignment:

[ruby]

# script/console
p = Project.find(2)
p.update_attributes(:task_ids => [4])
p.tasks

# models/project.rb
attr_accessible :name, :photo
[/ruby]

2 File Uploads
Disabling Script Execution with Apache

[ruby]
# models/project.rb
validates_attachment_content_type :photo, :content_type => [‚image/jpeg‘, ‚image/png‘]
# more security required
[/ruby]

3 Filter Log Params
Episode 9: Filtering Sensitive Logs

[ruby]
# application_controller.rb
filter_parameter_logging :password
[/ruby]

4 CSRF Protection
Cross-site Request Forgery
Rails authenticity token with jQuery

[ruby]
# application_controller.rb
protect_from_forgery
[/ruby]

5 Authorizing Ownership

[ruby]
# projects_controller.rb
def show
@project = current_user.projects.find(params[:id])
end
[/ruby]

6 SQL Injection
SQL Injection
Episode 25: SQL Injection

[ruby]
# projects_controller.rb
def index
@projects = current_user.projects.all(:conditions => ["name like ?", "%#{params[:search]}%"])
end
[/ruby]

7 HTML Injection (XSS)
Cross Site Scripting
Episode 27: Cross Site Scripting

[ruby]
<!– projects/show.html.erb –>
<%=h task.name %>
[/ruby]

Upgrade zu Snow Leopard [Update]

Seit letztem Freitag ist die neue OSX Version Snow Leopard verfügbar. Die Auslieferung hat begonnen, und Ruby und Rails Entwickler sollten sich mit der geänderten Version befassen, damit es keiner bösen Überraschungen gibt. Sowohl im Webblog auf rubyonrails.com als auch auf Github gibt es Einträge und Hilfen dazu.

Auf rubyonrails.com hat Matt Aimonetti eine Zusammenfassung der nötigen Schritte  veröffentlicht:

http://weblog.rubyonrails.org/2009/8/30/upgrading-to-snow-leopard

Einen ähnlichen Eintrag findet ihr auf Github:

http://gist.github.com/177368

Da beide Artikel sich mit dem gleichen Thema überschneiden sie sich an manchen Stellen. Dennoch findet man in beiden genug Informationen um für das Upgrade bewappnet zu sein.

UPDATE:

Wir haben einen weiteren Link für euch gefunden der sich mit dem Upgrade auf Snow Leopard beschäftigt: http://afreshcup.com/2009/09/02/migrating-to-snow-leopard-for-rails-development-a-definitive-guide/

Screencast: Model Versioning

Ryan Bates hat diese Woche einen weiteren Screencast veröffentlicht. In dieser Version behandelt er das Thema Model Versionierung. Für die Versionierung der Models setzt er das gem vistal_versions ein und zeigt wie es verwendet wird.

Downloadlinks:

Download (14.4 MB, 9:28)

Alternativer Download für iPod & Apple TV (10.4 MB, 9:28)

Weitere Resourcen zu diesem Screencast:

Verwendung in der Konsole

[bash]
sudo rake gems:install
script/generate vestal_versions_migration
script/generate migration version_existing_pages
rake db:migrate
[/bash]

Quellcode:

[ruby]
# config/environment.rb
config.gem ‚laserlemon-vestal_versions‘, :lib => ‚vestal_versions‘, :source => ‚http://gems.github.com‘

# models/page.rb
class Page < ActiveRecord::Base
versioned
end

# version_existing_pages migration
say_with_time "Setting initial version for pages" do
Page.find_each(&:touch)
end

# pages_controller.rb
def show
@page = Page.find(params[:id])
@page.revert_to(params[:version].to_i) if params[:version]
end

# script/console
p = Page.all
p.versions
p.revert_to(7.minutes.ago)
p.content
p.revert_to(:last)

[/ruby]

[xhtml]
<p>
<%= link_to "Edit", edit_page_path(@page) %>
| Version <%= @page.version %>
<% if @page.version > 1 %>
| <%= link_to "Previous version", :version => @page.version-1 %>
<% end %>
<% if params[:version] %>
| <%= link_to "Latest version", :version => nil %>
<% end %>
</p>
[/xhtml]

Backpack als CMS mit gu

37Signals haben mit gu eine kleine Rails-Applikation veröffentlicht mit der man seinen Backpack-Account als CMS einsetzen kann.

gu soll kein ausgewachsenes CMS ersetzen, aber genug bieten um kleinere Seiten zu betreiben.

Dabei wird größtenteils auf bestehende Funktionen von Backpack zurückgegriffen.

Ihr findet die Applikation incl. einer Anleitung auf github: github-link zu gu