Rails 3.1 и автоопределение RSS - PullRequest
2 голосов
/ 07 ноября 2011

Добрый день!

Я пытаюсь реализовать автоматическое определение rss через браузеры в моем веб-приложении.Я знаю об auto_discovery_link_tag, и я пытался использовать его.Я проверяю это Safari.Но вот проблема - Когда я пытаюсь:

/ app / views / layouts / 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 / layouts / 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 / 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

1 Ответ

5 голосов
/ 08 ноября 2011

Часть _controller не нужна, рельсы добавляют ее автоматически:

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