Rails“入门”路线

时间:2013-07-30 17:57:02

标签: ruby-on-rails ruby

我在这里关注入门教程:

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'^

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

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

2 个答案:

答案 0 :(得分:3)

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

答案 1 :(得分:1)

我必须说文档的一些内容有点误导,但是在文档中跳回到5 Getting up and running的几个步骤,你就会找到代码

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中非常复杂,所以现在不要太过于不堪重负。现在,坚持非常基础。

如果您要在路线文件中添加CreateReadUpdate, and删除a record, then you want to use the资源`方法的路线,如上所示。这将自动为您创建8条路线。 Rails会自动将它与相应的控制器相关联,因此您必须确保正确命名。