2010-04-18 6 views

risposta

15

Dove mettere le classi definite dall'utente in Rails? Per lib directory


Per la vostra specifica questione di classe RssReader.

Il codice migliore scritto su quella pagina è nel commento di Veez (30.7.2008). codice finale dovrebbe assomigliare a questo (non testato)

# lib/rss_reader.rb 
require 'rss/2.0' 
require 'open-uri' 

class RssReader 

    def self.posts_for(feed_url, length=2, perform_validation=false) 
    posts = [] 
    open(feed_url) do |rss| 
     posts = RSS::Parser.parse(rss, perform_validation).items 
    end 
    posts[0..length - 1] if posts.size > length 
    end 

controller

# for last five messages 
require 'rss_reader' 
def some_action 
    @posts = RssReader.posts_for(rss_url, 5, false) 
end 

In considerazione (riscritto da commento in HAML a ERB)

<ul> 
    <% @posts.each do |post| %> 
    <li><%= post.title %> - <%= post.description %></li> 
    <% end %> 
</ul> 

Guarda RSS::Parser.parse parametri per i dettagli.


credo, lettore di feed RSS dovrebbe essere modello in Rails. Il lettore di feed RSS molto semplice è descritto da Travis on Rails (leggi i commenti, non è necessario utilizzare il metodo open).