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.

Be Sociable, Share!

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

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

Quellcode:

# 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)

<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>

Be Sociable, Share!

Eingestellt am 31.08.2009 um 09:25

Kategorie: Links, Tutorials

Be Sociable, Share!

Kommentare für diesen Artikel wurden geschlossen.

Suchen auf rubyonrails.de

Aktuelle Rails Version + Abhängigkeiten:

Gem rails-3.0.0
actionmailer (= 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