Rails 3.1和RSS的自动检测



大家好!

我尝试在我的web应用程序通过浏览器实现rss自动检测。我知道auto_discovery_link_tag,我尝试使用它。我用Safari进行了测试。但这里有一个问题-当我尝试:

/app/views/布局/application.html.erb

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

Rails的服务器显示

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

当我尝试

/app/views/布局/application.html.erb

<%= auto_discovery_link_tag( :rss ) %>

浏览器显示RSS在每个页面上可用(这是错误的),并没有显示它。

下面是我的代码:

/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/用户/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

_controller部分不是必需的,rails会自动添加:

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

最新更新