我很抱歉询问可能是一个补救问题,但是在学习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尝试做什么,但我的目标是在深入挖掘主题之前输入并拾取我能做的。我剪切并粘贴了这条线,输入了它,并试图改变一些事情 - 没有结果。
我累了,感觉很蠢,所以我在这里寻求你的帮助。
提前谢谢。
答案 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
它应该适合你。