How do I make an RSS/Atom feed in Rails 3?

后端 未结 2 872
我在风中等你
我在风中等你 2020-12-22 17:56

I\'m pretty new to Rails 3, and I\'m trying to make an RSS/Atom feed. I know about auto_discovery_link_tag, but what is the associated controller/action supposed to look lik

相关标签:
2条回答
  • 2020-12-22 18:31

    Using the auto_discovery_link_tag:

    In the controller:

    respond_to do |format|
      format.html
      format.atom {render action: 'index', layout: false}
    end
    
    0 讨论(0)
  • 2020-12-22 18:38

    Auto_discovery_link_tag is a good start. A quick Google search and I found blog posts on How to Create an RSS feed in Rails. Let me fill you in on what your associated controller/action is supposed to look like:

    controllers/posts_controller.rb

    def feed
        @posts = Post.all(:select => "title, author, id, content, posted_at", :order => "posted_at DESC", :limit => 20) 
    
        respond_to do |format|
          format.html
          format.rss { render :layout => false } #index.rss.builder
        end
    end
    

    The name of this file should match the controller. See, below:

    views/posts/feed.rss.builder

    xml.instruct! :xml, :version => "1.0" 
    xml.rss :version => "2.0" do
      xml.channel do
        xml.title "Your Blog Title"
        xml.description "A blog about software and chocolate"
        xml.link posts_url
    
        for post in @posts
          xml.item do
            xml.title post.title
            xml.description post.content
            xml.pubDate post.posted_at.to_s(:rfc822)
            xml.link post_url(post)
            xml.guid post_url(post)
          end
        end
      end
    end
    

    This is where all the Railsy magic happens. Here, the RSS feed XML is generated and returned to HTTP.

    0 讨论(0)
提交回复
热议问题