Exception Notification e Rails 3

Mais uma dica com o objetivo de facilitar nossas vidas e nos deixar mais tranquilos ao se colocar um sistema em produção. Obviamente esperamos que não ocorra nenhum problema em nossa aplicação, uma vez que ela foi bem testada durante o desenvolvimento, mas em toda caso, se algum detalhe tiver fugido e alguma operação não prevista ocorrer ocasionando um bug no sistema, com o plugin Exception Notification você receberá um e-mail com mais detalhes sobre o problema para que seja corrigido pontualmente.

# Gemfile
gem "exception_notification", :git => "git://github.com/rails/exception_notification", :require => 'exception_notifier'
 
# application.rb, dentro do bloco de configuração
config.middleware.use ExceptionNotifier,
  :email_prefix => "[PrefixoDoEmail]",
  :sender_address => %w{system@ficticioacme.com},
  :exception_recipients => %w{boss@ficticioacme.com}

Você pode encontrar mais informações desse plugin no Github.

Criando RSS com Rails

Depois de um hiato de artigos técnicos, segue uma dica para quem desenvolve com Rails e deseja exportar seus dados através de RSS. Utilizando como exemplo um blog, imagine que você tenha um controller Posts. Crie um método chamado feed da seguinte forma:

def feed
    @posts = Post.order("posted_at DESC").limit(20) 
    respond_to do |format|
      format.rss { render :layout => false } #feed.rss.builder
    end
end

E em seguida, crie o arquivo feed.rss.builder, dentro da pasta posts da sua aplicação.

xml.instruct! :xml, :version => "1.0" 
xml.rss :version => "2.0" do
  xml.channel do
    xml.title "Titulo do blog"
    xml.description "Este é um blog sobre motherfuckers"
    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

Por essas e outras que eu sou viciado em Rails.