9

我很抱歉问什么可能是一个补救问题,但是在学习 rails 时,我试图按照本教程中的注释进行操作:

http://guides.rubyonrails.org/getting_started.html#configuration-gotchas

我很喜欢第 5.7 节 - 显示帖子的结果,按照指示我将此行添加到 routes.rb

post GET    /posts/:id(.:format)      posts#show

以及posts_controller.rb 中的show 方法:

class PostsController < ApplicationController
  def new
  end

  def create
    @post = Post.new (post_params)
    @post.save
    redirect_to @post
  end

  def show
    @post = Post.find(params[:id])
  end

  private
    def post_params
      params.require(:post).permit(:title, :text)
    end

end

我的 routes.rb 文件是

Listing::Application.routes.draw do
  get "welcome/index"

  post GET    /posts/:id(.:format)  posts#show


  resources :posts


  # You can have the root of your site routed with "root"
  root 'welcome#index'
end

这是错误:

C:/Ruby-Projects/listing/config/routes.rb:4: 语法错误,意外':',期待keyword_end post GET /posts/:id(.:format) posts#show ^

Rails.root: C:/Ruby-Projects/listing

应用程序跟踪 | 框架跟踪 | 完整跟踪加载以下文件时发生此错误:
C:/Ruby-Projects/listing/config/routes.rb

我在 64 位 Windows 8 上运行 rails 4.0、ruby 2.0。

诚然,我不知道 routes.rb 中的那一行想要做什么,但我的目标是在深入研究主题之前,输入这个并尽可能地拾取。我剪切并粘贴了该行,输入了它,并尝试更改了一些东西-没有结果。

我很累,感觉很愚蠢,所以我在这里寻求你的帮助。

先感谢您。

4

2 回答 2

12

第 5.7 节中的那一行只是向您显示 的输出rake routes,它并不意味着在您的 config/routes.rb 文件中。

routes.rb 中的行resources :posts会为您生成 show posts 路由,通过删除行来测试它:post GET /posts/:id(.:format) posts#show然后rake routes在命令行上运行。

于 2013-07-19T01:48:40.137 回答
2

我是红宝石世界的新手,我今天下午开始学习它:)

我遇到了与您相同的错误,我通过更改将路由写入 routes.rb 文件中建议的样式的方式来解决它。

而不是那些教程上写的内容,将其复制并粘贴到您的 routes.rb 中

Blog::Application.routes.draw do
  get "welcome/index"
 resources :posts
   root 'welcome#index'
  get    '/posts/:id(.:format)'  =>   'posts#show'
 get    '/posts(.:format)'       =>   'posts#index'
end

按照该教程的建议保存并检查您的帖子网址

http://localhost:3000/posts

它应该适合你。

于 2013-12-16T21:01:41.633 回答