Rails beginner
Rails beginner

Reputation: 14514

Rails 3 routing help no route matches

I am creating an RSS feed. I get this error in view:

ActionController::RoutingError in Konkurrancers#feed

Showing C:/Rails/konkurranceportalen/app/views/konkurrancers/feed.atom.builder where line #7 raised:

No route matches {:action=>"show", :controller=>"konkurrancers", :id=>#<Konkurrancer id: 51, name: "Vind et rejsegavekort p\xC3\xA5 helt op til 25.000 Kroner...", banner1: "http://dk.orvillemedia.com/ads/banners/488/728x90.j...", banner2: "http://dk.orvillemedia.com/ads/banners/488/125x125....", deadline: nil, tracking: "http://dk.orvillemedia.com/ads/m/fdm_rejsegavekort_...", vaerdi: 25000, arrangeor: "Orville", note: "", udtraekkes: "2011-07-01 00:00:00", created_at: "2011-03-17 08:13:41", updated_at: "2011-04-23 19:15:58", kategori_id: 9, cached_slug: "vind-et-rejsegavekort-p\xC3\xA5-helt-op-til-25000-kroner-...", tid: "30 sek", form: "Nyhedsbrev", partner: "Orville", bedom: 5, rating_score: 104, ratings: 25, rating: 0>}

Extracted source (around line #7):

4: 
5: for konkurrancer in @posts
6:     next if konkurrancer.updated_at.blank?  
7:         feed.entry(konkurrancer) do |entry|
8:             entry.title(konkurrancer.name)  
9:             entry.updated(konkurrancer.updated_at.strftime("%Y-%m-dT%H:%M:%SZ"))
10:         end

My atom feed builder:

atom_feed do |feed|
    feed.title("the dev station")
feed.updated(@posts.first.created_at) #omit .strftime

for konkurrancer in @posts
    next if konkurrancer.updated_at.blank?  
        feed.entry(konkurrancer) do |entry|
            entry.title(konkurrancer.name)  
            entry.updated(konkurrancer.updated_at.strftime("%Y-%m-dT%H:%M:%SZ"))
        end
  end
end

My route.rb:

match '/feed' => 'konkurrancers#feed',
      :as => :feed,
      :defaults => { :format => 'atom' }

match '/:kategoris/:cached_slug' => 'konkurrancers#show', :as => 'konkurrance'
match '/:id' => 'kategoris#show'

Instead of the RSS feed linking to the show action of konkurrancer. I want it to link to a column in my konkurrancers table that is named tracking that is an url.

Upvotes: 1

Views: 539

Answers (1)

fl00r
fl00r

Reputation: 83680

Try this

feed.entry(konkurrancer, :id => konkurrancer.id) do |entry|

UPD

feed.entry(konkurrancer, :url => konkurrancer.tracking) do |entry|

Upvotes: 3

Related Questions