2011-02-01 10 views
1

私は、次の宝石を使用しています:Railsサイトマップジェネレータ、未定義メソッドpost_path?

https://github.com/kjvarga/sitemap_generator

私はポストのモデルを持っており、それはエンキに基づいており、アプリケーションの他の部分でpost_path(ポスト)を使用していました。

ただし、サイトマップファイルに:rakeタスクすくいサイトマップを実行するときに

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

これはエラーを返します:リフレッシュ:

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ブロック内のすべてのヘルパーメソッドが含まれています。

私にも同様の問題がありました。私の答えも私を馬鹿に感じました。 sitemap.rbconfig/initializersに格納していたときに、config/ディレクトリに格納する必要がありました。つまり、起動時にURLヘルパーが正しく読み込まれなかったため(つまり、rake sitemap:refreshと呼ばれたときにが2回に生成されていました)、

+0

sitemap.rbをconfig/sitemap.rbに移動するのはまさに正しいことです。 –

0

post_pathがヘルパーでアクセスできないため、私はちょっとばかだと感じました。そのため、メソッドに直接移動するだけでした。あなたはposts_pathにアクセスすることができるはずですので

+0

これは正解ではありません。ルートヘルパーは絶対にあなたに利用できるはずです。おそらく問題の根源である次の回答を確認してください。既存の方法を複製することは、最大のアイデアではありません。 –

+0

これを指摘してくれてありがとう。私は今、上記の答えを正しいものとして受け入れました。 –

関連する問題