总noob问题。
我正在Rails中构建一个简单的photoblog,其中包含Posts。每个帖子都有自己的ID“/ posts / 1”。我使用rails scaffolding构建了帖子。
问题是我无法访问诸如“/ posts / index”或“/ posts / anything”之类的网址,因为它试图将“/ posts /”后的任何内容与id匹配...所以我收到了一个错误:
Couldn't find Post with ID=index
我确信这可以通过路线修复,但我不确定如何,我觉得我在这里缺少一些重大问题。
您可以从此处克隆我的应用:https://github.com/tbhockey/PhotoBlog
谢谢。
答案 0 :(得分:0)
运行rake routes
通常非常有帮助。在这种情况下,索引的路径应该是/ posts(不是/ posts / index)。如果您运行rake routes
,您可能会看到类似
posts GET /posts(.:format) {:action=>"index", :controller=>"posts"}
这是试图告诉您URL /帖子将被定向到您的posts_controller的索引操作。此外,您的代码中可能会将此引用为posts_path
或posts_url
。
答案 1 :(得分:0)
尝试为你的routes.rb执行此操作:
scope :path => '/posts', :controller => :posts do
get 'show/(:id)' => :show, :as => 'show_post'
end
对于/ posts / show / 1,它将调用posts控制器的show动作。
了解路由如何在Rails中运行总是一个好主意。这非常重要,可以帮助您了解有关Rails的许多内容。特别是查看命名路由对于良好的Rails编程至关重要。