Rails 3 маршрутизация помогает без совпадений маршрутов - PullRequest
1 голос
/ 26 апреля 2011

Я создаю канал RSS.Я вижу эту ошибку:

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

Мой построитель каналов атома:

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

Мой route.rb:

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

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

Вместо ссылки на канал RSSна шоу-действие konkurrancer.Я хочу, чтобы он ссылался на столбец в моей таблице konkurrancers с именем tracking, который является URL-адресом.

1 Ответ

3 голосов
/ 26 апреля 2011

Попробуйте это

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

UPD

feed.entry(konkurrancer, :url => konkurrancer.tracking) do |entry|
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...