0

我在这里关注入门教程:

http://guides.rubyonrails.org/getting_started.html

我发现路线很混乱:

我们仍然需要一种方法来列出我们所有的帖子,所以让我们这样做。我们将使用 config/routes.rb 中的特定路由:

posts GET /posts(.:format) posts#index

将此添加到我的 routes.rb 文件时,遇到错误

SyntaxError /Users/example/blog/config/routes.rb:12: 语法错误,意外':',期待keyword_end #get 'posts/:format' => 'posts#index' ^ /Users/thoad/blog/config /routes.rb:12: 语法错误,意外的 tIDENTIFIER,期待 keyword_end #get 'posts/:format' => 'posts#index' ^

当我完全省略这条线时,一切正常......

那么...为什么我需要那条线,有人可以向我解释一下它的结构吗?

4

2 回答 2

3

这不是您必须添加到 config/routes.rb 的行。此行来自运行以下命令:rake routes. 该行表示index控制器posts中的操作负责处理路径/posts。指南的下一步是创建所述操作。在您的控制器和视图中,您可以使用posts_path以重定向到此特定路径或链接到它。希望这可以帮助。

于 2013-07-30T18:03:18.840 回答
1

我必须说文档中的一些内容有点误导,但请跳回文档中的几个步骤到5 启动和运行,您会找到代码

Blog::Application.routes.draw do

  resources :posts

  root to: "welcome#index"
end

这是您routes.rb文件中应该包含的内容,它负责生成您在问题中的输出。

如果将其放入routes.rb文件中,然后在控制台中运行,rake routes您将获得输出

    posts GET    /posts(.:format)          posts#index
          POST   /posts(.:format)          posts#create
 new_post GET    /posts/new(.:format)      posts#new
edit_post GET    /posts/:id/edit(.:format) posts#edit
     post GET    /posts/:id(.:format)      posts#show
          PATCH  /posts/:id(.:format)      posts#update
          PUT    /posts/:id(.:format)      posts#update
          DELETE /posts/:id(.:format)      posts#destroy
     root        /                         welcome#index

请注意,在该输出中,第一行是您的问题。Rails 中的路由系统非常复杂,所以现在不要太不知所措。现在,坚持最基本的。

如果你想在你的路由文件中添加路由到Create, Read, Update, andDelete a record, then you want to use theresources` 方法,如上所示。这将自动为您创建 8 条路线。Rails 也会自动将它与适当的控制器相关联,因此您必须确保正确命名。

于 2013-07-30T18:17:32.437 回答