SORU
28 Ocak 2011, Cuma


Üreten 3 Raylar yem RSS

3 Raylar beslemeleri oluşturmak için en iyi uygulama/standart bir model arıyorum. http://railscasts.com/episodes/87-generating-rss-feeds hala geçerli mi?

CEVAP
28 Ocak 2011, Cuma


Öncelikle, bugünlerdeRSS yerine bir ATOM yem kullanmanızı tavsiye ederim.

ATOM besleme özellikleri uluslararası, içerik türleri ve diğer şeyler ile RSS birden fazla değer sunarveher modern besleme okuyucu destekler.

Daha fazla bilgi:


Üzerinde kodlama:

Bu örnek, varsayar:

  • bir model NewsItem denilen aşağıdaki öznitelikleri ile:
    • title
    • content
    • author_name
  • hangi feed eylem ekleyeceksiniz bu model (news_items_controller.rb) için bir denetleyici

Bu ve çok faydalı olan Raylar üzerinde Yakut atom_feed helper builder şablonu kullanacağız.

1. Denetleyici eylemi ekleyin

app/controllers/news_items_controller.rb gidin ve ekleyin:

def feed
  # this will be the name of the feed displayed on the feed reader
  @title = "FEED title"

  # the news items
  @news_items = NewsItem.order("updated_at desc")

  # this will be our Feed's update timestamp
  @updated = @news_items.first.updated_at unless @news_items.empty?

  respond_to do |format|
    format.atom { render :layout => false }

    # we want the RSS feed to redirect permanently to the ATOM feed
    format.rss { redirect_to feed_path(:format => :atom), :status => :moved_permanently }
  end
end

2. Kurulum oluşturucu şablonu

Şimdi yem oluşturmak için şablon Ekle.

app/views/news_items/feed.atom.builder gidin ve ekleyin:

atom_feed :language => 'en-US' do |feed|
  feed.title @title
  feed.updated @updated

  @news_items.each do |item|
    next if item.updated_at.blank?

    feed.entry( item ) do |entry|
      entry.url news_item_url(item)
      entry.title item.title
      entry.content item.content, :type => 'html'

      # the strftime is needed to work with Google Reader.
      entry.updated(item.updated_at.strftime("%Y-%m-%dT%H:%M:%SZ")) 

      entry.author do |author|
        author.name entry.author_name
      end
    end
  end
end

3. Bu yol ile Tel

Hadi http://domain.com/feed beslemeleri kullanılabilir hale getirmek

Bu varsayılan olarak ATOM biçimi ile eylem çağrısı /feed.atom 14 *yönlendirecektir.

config/routes.rb gidin ve ekleyin:

resources :news_items
match '/feed' => 'news_items#feed',
      :as => :feed,
      :defaults => { :format => 'atom' }

4. ATOM ve RSS bağlantısını düzenine beslemeleri ekleyin

Son olarak, tüm sol düzeni beslemek eklemektir.

app/views/layouts/application.html.erb gidip <head></head> bölüm bu: ekleyin

<%= auto_discovery_link_tag :atom, "/feed" %>
<%= auto_discovery_link_tag :rss, "/feed.rss" %>

Bu bir iki yazım hatası da olabilir, bana eğer bu sizin için çalışır bildirin.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • DJAndrewRyan

    DJAndrewRyan

    22 Ocak 2007
  • Fraser Raft

    Fraser Raft

    9 Mart 2010
  • TheTwistedFrequency

    TheTwistedFr

    26 NİSAN 2010

İLGİLİ SORU / CEVAPLAR