Soumettre la recherche
Mettre en ligne
Intro to Merb - A Ruby MVC Web Framework
•
Télécharger en tant que PPT, PDF
•
11 j'aime
•
1,669 vues
Titre amélioré par l'IA
P
pjb3
Suivre
An introduction the Merb Framework
Lire moins
Lire la suite
Technologie
Signaler
Partager
Signaler
Partager
1 sur 47
Télécharger maintenant
Recommandé
Spring 2.0
Spring 2.0
gouthamrv
Getting More Traffic From Search Advanced Seo For Developers Presentation
Getting More Traffic From Search Advanced Seo For Developers Presentation
Seo Indonesia
Spring 2.0
Spring 2.0
goutham v
Advanced SEO for Web Developers
Advanced SEO for Web Developers
Nathan Buggia
Cucumber: How I Slice It
Cucumber: How I Slice It
linoj
Story Driven Web Development
Story Driven Web Development
Michael Koukoullis
Beautiful Java EE - PrettyFaces
Beautiful Java EE - PrettyFaces
Lincoln III
The New Renaissance of JavaScript
The New Renaissance of JavaScript
Hamlet Batista
Recommandé
Spring 2.0
Spring 2.0
gouthamrv
Getting More Traffic From Search Advanced Seo For Developers Presentation
Getting More Traffic From Search Advanced Seo For Developers Presentation
Seo Indonesia
Spring 2.0
Spring 2.0
goutham v
Advanced SEO for Web Developers
Advanced SEO for Web Developers
Nathan Buggia
Cucumber: How I Slice It
Cucumber: How I Slice It
linoj
Story Driven Web Development
Story Driven Web Development
Michael Koukoullis
Beautiful Java EE - PrettyFaces
Beautiful Java EE - PrettyFaces
Lincoln III
The New Renaissance of JavaScript
The New Renaissance of JavaScript
Hamlet Batista
My Story With Flickr
My Story With Flickr
Jose Martinez
Query Classification on Steroids with BERT
Query Classification on Steroids with BERT
Hamlet Batista
Fast Loading JavaScript
Fast Loading JavaScript
Aaron Peters
Web APIs & Google APIs
Web APIs & Google APIs
Pamela Fox
Rendering SEO Manifesto - Why we need to go beyond JavaScript SEO
Rendering SEO Manifesto - Why we need to go beyond JavaScript SEO
Onely
Debugging rendering problems at scale
Debugging rendering problems at scale
Giacomo Zecchini
PrettyFaces: SEO, Dynamic, Parameters, Bookmarks, Navigation for JSF / JSF2 (...
PrettyFaces: SEO, Dynamic, Parameters, Bookmarks, Navigation for JSF / JSF2 (...
Lincoln III
Solving Complex JavaScript Issues and Leveraging Semantic HTML5
Solving Complex JavaScript Issues and Leveraging Semantic HTML5
Hamlet Batista
Recipe book flipped-coding
Recipe book flipped-coding
Milecia McGregor
Mashups & APIs
Mashups & APIs
Pamela Fox
GTM Clowns, fun and hacks - Search Elite - May 2017 Gerry White
GTM Clowns, fun and hacks - Search Elite - May 2017 Gerry White
Gerry White
Make your PWA feel more like an app
Make your PWA feel more like an app
Önder Ceylan
Getting the Most Out of OpenSocial Gadgets
Getting the Most Out of OpenSocial Gadgets
Atlassian
seo savage 2012
seo savage 2012
darkthrone287
Schema.org and the changing world of Rich Results - SEOEdinburgh Meetup
Schema.org and the changing world of Rich Results - SEOEdinburgh Meetup
Geoff Kennedy
Double Loop: TDD & BDD Done Right!
Double Loop: TDD & BDD Done Right!
Jessica Mauerhan
Migrating a large scale banking app to compose
Migrating a large scale banking app to compose
Fatih Giris
Make Your Own Damn SEO Tools (Using Google Docs!)
Make Your Own Damn SEO Tools (Using Google Docs!)
Sean Malseed
Google Wave 20/20: Product, Protocol, Platform
Google Wave 20/20: Product, Protocol, Platform
Pamela Fox
Grant Concept Brij Slides
Grant Concept Brij Slides
brijsingh
Publicity Art
Publicity Art
David Page
Weblogs Wikis E Portfolios
Weblogs Wikis E Portfolios
Bruce Perry
Contenu connexe
Tendances
My Story With Flickr
My Story With Flickr
Jose Martinez
Query Classification on Steroids with BERT
Query Classification on Steroids with BERT
Hamlet Batista
Fast Loading JavaScript
Fast Loading JavaScript
Aaron Peters
Web APIs & Google APIs
Web APIs & Google APIs
Pamela Fox
Rendering SEO Manifesto - Why we need to go beyond JavaScript SEO
Rendering SEO Manifesto - Why we need to go beyond JavaScript SEO
Onely
Debugging rendering problems at scale
Debugging rendering problems at scale
Giacomo Zecchini
PrettyFaces: SEO, Dynamic, Parameters, Bookmarks, Navigation for JSF / JSF2 (...
PrettyFaces: SEO, Dynamic, Parameters, Bookmarks, Navigation for JSF / JSF2 (...
Lincoln III
Solving Complex JavaScript Issues and Leveraging Semantic HTML5
Solving Complex JavaScript Issues and Leveraging Semantic HTML5
Hamlet Batista
Recipe book flipped-coding
Recipe book flipped-coding
Milecia McGregor
Mashups & APIs
Mashups & APIs
Pamela Fox
GTM Clowns, fun and hacks - Search Elite - May 2017 Gerry White
GTM Clowns, fun and hacks - Search Elite - May 2017 Gerry White
Gerry White
Make your PWA feel more like an app
Make your PWA feel more like an app
Önder Ceylan
Getting the Most Out of OpenSocial Gadgets
Getting the Most Out of OpenSocial Gadgets
Atlassian
seo savage 2012
seo savage 2012
darkthrone287
Schema.org and the changing world of Rich Results - SEOEdinburgh Meetup
Schema.org and the changing world of Rich Results - SEOEdinburgh Meetup
Geoff Kennedy
Double Loop: TDD & BDD Done Right!
Double Loop: TDD & BDD Done Right!
Jessica Mauerhan
Migrating a large scale banking app to compose
Migrating a large scale banking app to compose
Fatih Giris
Make Your Own Damn SEO Tools (Using Google Docs!)
Make Your Own Damn SEO Tools (Using Google Docs!)
Sean Malseed
Google Wave 20/20: Product, Protocol, Platform
Google Wave 20/20: Product, Protocol, Platform
Pamela Fox
Tendances
(19)
My Story With Flickr
My Story With Flickr
Query Classification on Steroids with BERT
Query Classification on Steroids with BERT
Fast Loading JavaScript
Fast Loading JavaScript
Web APIs & Google APIs
Web APIs & Google APIs
Rendering SEO Manifesto - Why we need to go beyond JavaScript SEO
Rendering SEO Manifesto - Why we need to go beyond JavaScript SEO
Debugging rendering problems at scale
Debugging rendering problems at scale
PrettyFaces: SEO, Dynamic, Parameters, Bookmarks, Navigation for JSF / JSF2 (...
PrettyFaces: SEO, Dynamic, Parameters, Bookmarks, Navigation for JSF / JSF2 (...
Solving Complex JavaScript Issues and Leveraging Semantic HTML5
Solving Complex JavaScript Issues and Leveraging Semantic HTML5
Recipe book flipped-coding
Recipe book flipped-coding
Mashups & APIs
Mashups & APIs
GTM Clowns, fun and hacks - Search Elite - May 2017 Gerry White
GTM Clowns, fun and hacks - Search Elite - May 2017 Gerry White
Make your PWA feel more like an app
Make your PWA feel more like an app
Getting the Most Out of OpenSocial Gadgets
Getting the Most Out of OpenSocial Gadgets
seo savage 2012
seo savage 2012
Schema.org and the changing world of Rich Results - SEOEdinburgh Meetup
Schema.org and the changing world of Rich Results - SEOEdinburgh Meetup
Double Loop: TDD & BDD Done Right!
Double Loop: TDD & BDD Done Right!
Migrating a large scale banking app to compose
Migrating a large scale banking app to compose
Make Your Own Damn SEO Tools (Using Google Docs!)
Make Your Own Damn SEO Tools (Using Google Docs!)
Google Wave 20/20: Product, Protocol, Platform
Google Wave 20/20: Product, Protocol, Platform
En vedette
Grant Concept Brij Slides
Grant Concept Brij Slides
brijsingh
Publicity Art
Publicity Art
David Page
Weblogs Wikis E Portfolios
Weblogs Wikis E Portfolios
Bruce Perry
Sub Prime Crisis Explained
Sub Prime Crisis Explained
David Page
Weblogs - Wikis - ePortfolios
Weblogs - Wikis - ePortfolios
Bruce Perry
Creation Story Rewritten
Creation Story Rewritten
David Page
Google App Engine
Google App Engine
David Page
Para Mis Friendss
Para Mis Friendss
guestcb5109
States Of Matter[1]
States Of Matter[1]
wolffer87
The Application Development Lifecycle
The Application Development Lifecycle
David Page
Cosas
Cosas
anitabtt
Brij Singhs Ideas
Brij Singhs Ideas
brijsingh
I sette peccati capitali dell'albergatore (in tema di reputation) #tourismreload
I sette peccati capitali dell'albergatore (in tema di reputation) #tourismreload
Mirko Lalli
The Yubikey
The Yubikey
David Page
Travel Appeal Destination
Travel Appeal Destination
Mirko Lalli
Introducción tecnología educativa
Introducción tecnología educativa
Carmen Leonor
viamedia portfolio presentation pdf
viamedia portfolio presentation pdf
Ram Ravi
States Of Matter Power Point
States Of Matter Power Point
wolffer87
Retooling you CMS- Charting a Successful Course
Retooling you CMS- Charting a Successful Course
coastalcandy
En vedette
(19)
Grant Concept Brij Slides
Grant Concept Brij Slides
Publicity Art
Publicity Art
Weblogs Wikis E Portfolios
Weblogs Wikis E Portfolios
Sub Prime Crisis Explained
Sub Prime Crisis Explained
Weblogs - Wikis - ePortfolios
Weblogs - Wikis - ePortfolios
Creation Story Rewritten
Creation Story Rewritten
Google App Engine
Google App Engine
Para Mis Friendss
Para Mis Friendss
States Of Matter[1]
States Of Matter[1]
The Application Development Lifecycle
The Application Development Lifecycle
Cosas
Cosas
Brij Singhs Ideas
Brij Singhs Ideas
I sette peccati capitali dell'albergatore (in tema di reputation) #tourismreload
I sette peccati capitali dell'albergatore (in tema di reputation) #tourismreload
The Yubikey
The Yubikey
Travel Appeal Destination
Travel Appeal Destination
Introducción tecnología educativa
Introducción tecnología educativa
viamedia portfolio presentation pdf
viamedia portfolio presentation pdf
States Of Matter Power Point
States Of Matter Power Point
Retooling you CMS- Charting a Successful Course
Retooling you CMS- Charting a Successful Course
Similaire à Intro to Merb - A Ruby MVC Web Framework
What's new in Rails 2?
What's new in Rails 2?
brynary
Haml & Sass presentation
Haml & Sass presentation
bryanbibat
Master pages ppt
Master pages ppt
Iblesoft
Building Web Interface On Rails
Building Web Interface On Rails
Wen-Tien Chang
Boston Computing Review - Ruby on Rails
Boston Computing Review - Ruby on Rails
John Brunswick
JSP Custom Tags
JSP Custom Tags
BG Java EE Course
EPiServer Web Parts
EPiServer Web Parts
EPiServer Meetup Oslo
Html5
Html5
dotNETUserGroupDnipro
KMUTNB - Internet Programming 3/7
KMUTNB - Internet Programming 3/7
phuphax
User Experience is dead. Long live the user experience!
User Experience is dead. Long live the user experience!
Greg Bell
HTML5 Overview
HTML5 Overview
reybango
Developing and testing ajax components
Developing and testing ajax components
Ignacio Coloma
Rich faces
Rich faces
BG Java EE Course
OSDC 2009 Rails Turtorial
OSDC 2009 Rails Turtorial
Yi-Ting Cheng
Meta tags1
Meta tags1
hapy
Lecture 1 - Comm Lab: Web @ ITP
Lecture 1 - Comm Lab: Web @ ITP
yucefmerhi
Ajax
Ajax
wangjiaz
Lecture 6 - Comm Lab: Web @ ITP
Lecture 6 - Comm Lab: Web @ ITP
yucefmerhi
APEX Themes and Templates
APEX Themes and Templates
InSync Conference
Evolution of API With Blogging
Evolution of API With Blogging
Takatsugu Shigeta
Similaire à Intro to Merb - A Ruby MVC Web Framework
(20)
What's new in Rails 2?
What's new in Rails 2?
Haml & Sass presentation
Haml & Sass presentation
Master pages ppt
Master pages ppt
Building Web Interface On Rails
Building Web Interface On Rails
Boston Computing Review - Ruby on Rails
Boston Computing Review - Ruby on Rails
JSP Custom Tags
JSP Custom Tags
EPiServer Web Parts
EPiServer Web Parts
Html5
Html5
KMUTNB - Internet Programming 3/7
KMUTNB - Internet Programming 3/7
User Experience is dead. Long live the user experience!
User Experience is dead. Long live the user experience!
HTML5 Overview
HTML5 Overview
Developing and testing ajax components
Developing and testing ajax components
Rich faces
Rich faces
OSDC 2009 Rails Turtorial
OSDC 2009 Rails Turtorial
Meta tags1
Meta tags1
Lecture 1 - Comm Lab: Web @ ITP
Lecture 1 - Comm Lab: Web @ ITP
Ajax
Ajax
Lecture 6 - Comm Lab: Web @ ITP
Lecture 6 - Comm Lab: Web @ ITP
APEX Themes and Templates
APEX Themes and Templates
Evolution of API With Blogging
Evolution of API With Blogging
Dernier
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Miguel Araújo
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
Delhi Call girls
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen Frames
Sinan KOZAK
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024
Scott Keck-Warren
Maximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptx
OnBoard
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
BookNet Canada
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
Pooja Nehwal
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
soniya singh
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024
Results
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
gurkirankumar98700
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
Delhi Call girls
Slack Application Development 101 Slides
Slack Application Development 101 Slides
praypatel2
🐬 The future of MySQL is Postgres 🐘
🐬 The future of MySQL is Postgres 🐘
RTylerCroy
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
giselly40
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
Delhi Call girls
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
HostedbyConfluent
Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101
Paola De la Torre
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 Presentation
Ridwan Fadjar
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Alan Dix
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
Enterprise Knowledge
Dernier
(20)
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen Frames
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024
Maximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptx
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
Slack Application Development 101 Slides
Slack Application Development 101 Slides
🐬 The future of MySQL is Postgres 🐘
🐬 The future of MySQL is Postgres 🐘
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 Presentation
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
Intro to Merb - A Ruby MVC Web Framework
1.
merb.intro
:by => "Paul Barry" "Paul Barry"
2.
What is Merb?
A Ruby MVC Web Framework similar to Rails, but: • Small • Fast • Light • Less Opinionated
3.
Create Your App
$ merb-gen app blog ~/projects
4.
Configure Your App
config/init.rb use_orm :activerecord dependency "merb-action-args" dependency "merb-assets" dependency "merb-builder" dependency "merb-parts" dependency "merb_activerecord" dependency "merb_helpers"
5.
Configure Your Database
config/database.yml development: adapter: sqlite3 database: dev.db timeout: 5000 test: adapter: sqlite3 database: test.db timeout: 5000
6.
Generate a Model
$ merb-gen model article title:string body:text ~/projects/blog
7.
Create the Table
$ rake db:migrate ~/projects/blog
8.
Create an Article
$ merb -i >> article = Article.new(:title => 'First Post') => #<Article id: nil...> >> article.body = 'Lorem ipsum dolor sit amet...' => "Lorem ipsum dolor sit amet..." >> article.save!=> true ~/projects/blog
9.
Create a Controller
app/controllers/articles.rb class Articles < Application def index "Hello, World!" end end
10.
Create RESTful Route
config/router.rb Merb :: Router .prepare do | r | r.resources :articles end
11.
Start Merb $
merb ~/projects/blog
12.
View the controller
13.
Named Route config/router.rb
r.match( "/sleep/:time" ).to( :controller => "sleeper" , :action => "execute" ).name( :sleeper )
14.
Blocking Controller app/controllers/sleeper.rb
class Sleeper < Application def execute (time = 5 ) sleep time.to_i "I slept for #{time} seconds" end end
15.
Non-Blocking Controller app/controllers/sleeper.rb
class Sleeper < Application def execute (time = 5 ) render_deferred do sleep time.to_i "I slept for #{time} seconds" end end end
16.
Demo
17.
Create a Real
Action app/controllers/articles.rb class Articles < Application def index @articles = Article .find( :all , :limit => 5 , :order => "created_at desc" ) display @articles end end
18.
Create the View
app/views/articles/index.html.erb <% throw_content :page_title, "Articles" %><%= partial 'article', :with => @articles %> <% throw_content :page_title , "Articles" %> <% throw_content :sidebar do %> <%= partial 'shared/me' %> <% end %> <%= partial 'article' , :with => @articles %>
19.
Create the Partial
app/views/articles/_article.html.erb <% throw_content :page_title, "Articles" %><%= partial 'article', :with => @articles %> <div id= "article_ <%= article.id %> " class= "article" > <h2> <%= link_to h(article.title), url( :article , article) %> </h2> <p class= "posted_at" > Posted at <%= article.created_at.strftime "%l:%M %p" %> on <%= article.created_at.strftime "%A, %B %e" %> <p> <%= h(article.body) %> </p> </div>
20.
Create the Shared
Partial app/views/shared/_me.html.erb <% throw_content :page_title, "Articles" %><%= partial 'article', :with => @articles %> <h2> About Me </h2> <%= image_tag "me.jpg" %>
21.
Create the Layout
app/views/layout/articles.html.erb <% throw_content :page_title, "Articles" %><%= partial 'article', :with => @articles %> <html> <head> <title> Merb Blog - <%= catch_content :page_title %> </title> <%= css_include_tag 'application' %> <%= catch_content :html_head %> </head> <body> <div id= "page" > <div id= "header" ><h1> Merb Blog </h1></div> <div id= "content" > <%= catch_content %> </div> <div id= "sidebar" > <%= catch_content :sidebar %> </div> </div> </body> </html>
22.
View Articles
23.
Create the Show
Action app/controllers/articles.rb <% throw_content :page_title, "Articles" %><%= partial 'article', :with => @articles %> def show (id) @article = Article .find_by_id(id) raise NotFound unless @article display @article end
24.
Create the Show
View app/views/show.html.erb <% throw_content :page_title, "Articles" %><%= partial 'article', :with => @articles %> <% throw_content :page_title , h( @article .title) %> <% throw_content :sidebar do %> <%= partial 'shared/me' %> <% end %> <%= partial 'article' , :with => @article %>
25.
View Article <%
throw_content :page_title, "Articles" %><%= partial 'article', :with => @articles %>
26.
Add RSS Mime
Type config/init.rb <% throw_content :page_title, "Articles" %><%= partial 'article', :with => @articles %> Merb .add_mime_type :rss , nil , %w[text/xml]
27.
Add RSS to
Provides app/controllers/articles.rb <% throw_content :page_title, "Articles" %><%= partial 'article', :with => @articles %> class Articles < Application provides :rss def index @articles = Article .find( :all , :limit => 5 , :order => "created_at desc" ) display @articles end end
28.
Create RSS Builder
app/views/articles/index.rss.builder <% throw_content :page_title, "Articles" %><%= partial 'article', :with => @articles %> xml.instruct! :xml , :version => "1.0" xml.rss :version => "2.0" do xml.channel do xml.title "Merb Blog" xml.description "The greatest blog in the world" xml.link " http://merb.blog " @articles .each do | a | xml.item do xml.title a.title xml.description a.body xml.pubDate a.created_at.to_s( :rfc822 ) xml.link url( :article , a) xml.guid url( :article , a) end end end end
29.
Add Auto-Discovery Link
app/views/articles/index.html.erb <% throw_content :page_title, "Articles" %><%= partial 'article', :with => @articles %> <% throw_content :html_head do %> <link rel= "alternate" type= "application/rss+xml" title= "RSS" href= "/articles.rss" /> <% end %>
30.
RSS Icon <%
throw_content :page_title, "Articles" %><%= partial 'article', :with => @articles %>
31.
RSS Feed <%
throw_content :page_title, "Articles" %><%= partial 'article', :with => @articles %>
32.
33.
Recent Article Part
View <% throw_content :page_title, "Articles" %><%= partial 'article', :with => @articles %> app/parts/views/recent_articles/index.html.erb <h2> Recent Articles </h2> <ul> <% @articles .each do | a | %> <li> <%= link_to h(a.title), url( :article , a) %> </li> <% end %> </ul>
34.
Add Part to
View <% throw_content :page_title, "Articles" %><%= partial 'article', :with => @articles %> app/views/articles/show.html.erb <% throw_content :sidebar do %> <%= partial 'shared/me' %> <%= part RecentArticles => "index" , :limit => 5 %> <% end %>
35.
Recent Articles <%
throw_content :page_title, "Articles" %><%= partial 'article', :with => @articles %>
36.
Generate Admin Controller
<% throw_content :page_title, "Articles" %><%= partial 'article', :with => @articles %> ~/projects/blog $ merb-gen resource_controller admin/articles create app/controllers/admin create app/helpers/admin create app/views/admin/articles create app/controllers/admin/articles.rb create app/helpers/admin/articles_helper.rb create app/views/admin/articles/edit.html.erb create app/views/admin/articles/index.html.erb create app/views/admin/articles/new.html.erb create app/views/admin/articles/show.html.erb
37.
Add Admin Route
<% throw_content :page_title, "Articles" %><%= partial 'article', :with => @articles %> config/router.rb Merb :: Router .prepare do | r | r.namespace :admin do | admin | admin.resources :articles end r.resources :articles end
38.
View Routes <%
throw_content :page_title, "Articles" %><%= partial 'article', :with => @articles %> ~/projects/blog $ merb -i >> merb.show_routes Named Routes edit_admin_article: /admin/articles/:id/edit delete_admin_article: /admin/articles/:id/delete article: /articles/:id admin_articles: /admin/articles new_article: /articles/new admin_article: /admin/articles/:id edit_article: /articles/:id/edit articles: /articles new_admin_article: /admin/articles/new delete_article: /articles/:id/delete
39.
Admin Articles View
<% throw_content :page_title, "Articles" %><%= partial 'article', :with => @articles %> app/views/admin/articles/index.html.erb <h2> Articles </h2> <p> <%= link_to "Create New Article" , url( :new_admin_article ) %> <ul> <% @articles .each do | a | %> <li> <%= link_to h(a.title), url( :admin_article , a) %> </li> <% end %> </ul>
40.
Admin New Article
View <% throw_content :page_title, "Articles" %><%= partial 'article', :with => @articles %> app/views/admin/articles/new.html.erb <h2> New Article </h2> <%= partial 'form' %>
41.
Admin Edit Article
View <% throw_content :page_title, "Articles" %><%= partial 'article', :with => @articles %> app/views/admin/articles/edit.html.erb <h2> Edit Article </h2> <%= partial 'form' %>
42.
Admin Article Form
<% throw_content :page_title, "Articles" %><%= partial 'article', :with => @articles %> app/views/admin/articles/_form.html.erb <%= error_messages_for :article %> <% form_for @article , :action => url( :admin_article , @article ) do %> <div class= "field" > <%= text_control :title , :label => 'Title' %> </div> <div class= "field" > <%= text_area_control :body , :rows => 20 , :cols => 80 %> <div> <div class= "buttons" > <%= submit_button 'Save' %> </div> <% end %>
43.
Create a New
Article <% throw_content :page_title, "Articles" %><%= partial 'article', :with => @articles %>
44.
Admin Article View
<% throw_content :page_title, "Articles" %><%= partial 'article', :with => @articles %> app/views/admin/articles/show.html.erb <h2> <%=h @article .title %> </h2> <p> <%=h @article .body %> </p> <hr /> <%= link_to "Back to Articles" , url( :admin_articles ) %> | <%= link_to "Edit this Article" , url( :edit_admin_article , @article ) %>
45.
So is it
worth it?
46.
Numbers <% throw_content
:page_title, "Articles" %><%= partial 'article', :with => @articles %> min avg max stddev rails GET /articles 37.4 45.7 47.0 2.0 rails GET /articles/1 44.0 45.1 45.8 0.6 merb GET /articles 70.0 71.1 73.0 0.8 merb GET /articles/1 88.0 107.1 110.1 7.2 requests/second
47.
Thank You! http://merbivore.com
#merb on irc.freenode.net http://mwrc2008.conf reaks.com/02zygmuntowicz.html http://paulbarry.co m Resources
Télécharger maintenant