2011-02-01 25 views
1

我使用下面的寶石:Rails網站地圖生成器,未定義的方法post_path?

https://github.com/kjvarga/sitemap_generator

我有一個職位模型,因爲它是基於恩基已經使用的應用程序的其他部分post_path(崗位)。

然而,在網站地圖文件:

Post.all.each do |post| 
    sitemap.add post_path(post), :lastmod => post.updated_at 
    end 

運行rake任務耙網站地圖時,這將返回錯誤:刷新:

rake aborted! 
undefined method `post_path' for #<SitemapGenerator::Interpreter:0x279efd0> 

和:

Post.all.each do |post| 
    sitemap.add posts_path(post), :lastmod => post.updated_at 
end 

沒有返回錯誤。任何人都可以闡明這一點,或者我是否需要提供更多的代碼?

回答

3

sitemap_generator實際上包括在create塊中的所有輔助方法,所以你應該能夠訪問posts_path

我有一個類似的問題,我的回答也讓我感到愚蠢。我將sitemap.rb存儲在config/initializers中,當它存儲在config/目錄中時。這意味着它在啓動時運行並失敗,因爲url幫助程序沒有正確加載(並且,順便說一句,當我調用rake sitemap:refresh時,網站地圖正在生成兩次 - 一次在初始化程序中,並且再次作爲rake任務!)

0

我覺得這個有點笨,這只是因爲post_path是一個助手而不能訪問,所以我只是直接將它移動到方法中。

+0

這不是正確的答案。絕對應該爲你提供路線助手。檢查下一個答案,這可能是問題的根源。複製現有的方法並不是最大的想法。 – 2013-05-02 19:05:21

+0

感謝您指出這一點。我現在已經接受上面的答案是正確的。 – 2013-05-06 13:42:47