教程中的错误:语法错误,意外':',期待keyword_end

时间:2013-07-19 01:41:57

标签: ruby-on-rails

我很抱歉询问可能是一个补救问题,但是在学习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:语法错误,意外   ':',期待关键字_end发布GET /posts/:id(.:format)帖子#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尝试做什么,但我的目标是在深入挖掘主题之前输入并拾取我能做的。我剪切并粘贴了这条线,输入了它,并试图改变一些事情 - 没有结果。

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

提前谢谢。

2 个答案:

答案 0 :(得分:12)

第5.7节中的那一行只显示rake routes的输出,它不在你的config / routes.rb文件中。

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

答案 1 :(得分: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

它应该适合你。