2010-04-18 11 views

Odpowiedz

15

Gdzie umieścić klasy zdefiniowane przez użytkownika w Railsach? Aby lib katalog


do konkretnej klasy RssReader pytanie.

Najlepszy kod napisany na tej stronie jest w komentarzu z Veez (30.7.2008). Kod końcowy powinien wyglądać następująco (nie badane)

# 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 

W kontrolerze

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

Wobec (przepisany z komentarzem w haml do ERB)

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

Watch RSS::Parser.parse parametry dla szczegółów.


Myślę, że czytnik RSS rss powinien być modelem w Railsach. Bardzo prosty czytnik RSS czytuje opisany przez Travis on Rails (czytaj komentarze, nie musisz używać metody otwartej).

Powiązane problemy