Screencast: Eigene Rails 3 Generatoren erstellen

In Rails 3 wurde die Erstellung von eigenen Generatoren überarbeitet. Ryan zeigt diese Woche wie man eigene Generatoren erstellen kann und was sich an der bisherigen Syntax geändert hat.

 

Download:

Download(14 MB, 10:07)
Alternativer Downloadfür iPod & Apple TV(13.8 MB, 10:07)

 

Resourcen:

 

Quellcode:

rails g generator --help
rails g generator layout
rails g layout --help
rails g layout admin
rails g layout foo --skip-stylesheet
# lib/generators/layout/layout_generator.rb
class LayoutGenerator < Rails::Generators::Base
  source_root File.expand_path('../templates', __FILE__)
  argument :layout_name, :type => :string, :default => "application"
  class_option :stylesheet, :type => :boolean, :default => true, :desc => "Include stylesheet file."

  def generate_layout
    copy_file "stylesheet.css", "public/stylesheets/#{file_name}.css" if options.stylesheet?
    template "layout.html.erb", "app/views/layouts/#{file_name}.html.erb"
  end

  private

  def file_name
    layout_name.underscore
  end
end
# lib/generators/layout/templates/layout.html.erb
<!DOCTYPE html>
<html>
  <head>
    <title>Untitled</title>
    <%- if options.stylesheet? -%>
    <%%= stylesheet_link_tag "<%= file_name %>" %>
    <%- end -%>
    <%%= javascript_include_tag :defaults %>
    <%%= csrf_meta_tag %>
    <%%= yield(:head) %>
  </head>
  <body>
    <div id="container">
      <%% flash.each do |name, msg| %>
        <%%= content_tag :div, msg, :id => "flash_#{name}" %>
      <%% end %>
      <%%= yield %>
    </div>
  </body>
</html>

Eingestellt am 14.06.2010 um 11:10

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