2011-11-07 3 views
2

Bonne journée!Rails 3.1 et détection automatique de RSS

J'essaie d'implémenter la détection automatique de rss via les navigateurs dans mon application web. Je connais auto_discovery_link_tag et j'ai essayé de l'utiliser. Je l'ai testé par Safari. Mais voici problème - Quand j'essaye:

/app/views/layouts/application.html.erb

<%= auto_discovery_link_tag(:rss, {:controller => "users_controller", :action => "show"}) %> 

serveur Rails montre

Routing Error 

No route matches {:controller=>"users_controller", :action=>"show"} 

Quand j'essaie juste

/app/views/layouts/application.html.erb

<%= auto_discovery_link_tag(:rss) %> 

Le navigateur montre que RSS est disponible sur chaque page (ce qui est faux) et ne l'affiche pas.

Voici mon code:

/app/controllers/users_controller.rb

class UsersController < ApplicationController 

    def show 
    @user = User.find(params[:id]) 
    @title = @user.name              
    @microposts = @user.microposts.paginate(:page => params[:page]) 

    respond_to do |format| 
     format.html 
     format.rss { render :layout => false } 
    end 
    end 

/app/views/users/show.rss.builder

xml.instruct! :xml, :version => "1.0" 
xml.rss :version => "2.0" do 
    xml.channel do 
    xml.title "Feed of #{@user.name}" 
    xml.description "Rails. Feed of user." 

    for post in @microposts 
     xml.item do 
     xml.title post.id 
     xml.description post.content 
     xml.pubDate post.created_at.to_s(:rfc822) 
     end 
    end 
    end 
end 

Répondre

5

La pièce _controller n'est pas nécessaire, les rails l'ajoutent automatiquement:

<%= auto_discovery_link_tag(:rss, {:controller => "users", :action => "show"}) %>