2017-05-20 82 views
0

有关向您展示如何创建博客的指南,我已获得5.7。本节将告诉您如何显示文章,但在执行以下步骤后,我只会在尝试运行rails server时发生错误。它确切地说它是一个路线行中的语法错误。该行是“article get /articles/:id(.:format)articles#show”,错误指向:id。我不知道该怎么做,我已经看过指南的路线部分,我认为这是一条有效的路线。Ruby on rails指南

routes.rb包含

Rails.application.routes.draw do 
get 'welcome/index' 
resources :articles 
root 'welcome#index' 
article get /articles/:id(.:format) articles#show 
end 

我收到确切消息时,我使用的命令轨道服务器:

blog/config/routes.rb:5: syntax error, unexpected ':', expecting keyword_end (SyntaxError) article get /articles/:id(.:format) article#show 
+2

添加出现在控制台中的错误和文章中的show.html.erb文件。 –

+0

请发布您的'routes.rb'文件 – jdgray

回答

2

该路线你试图使格式不正确,我可以说你从字面上粘贴了rails routes命令的输出。

您需要首先指定HTTP动词GET在这种情况下,然后url这将响应,然后控制器和操作。

来源:

article get /articles/:id(.:format) articles#show 

尝试用:

get '/articles/:id', to: 'articles#show' 
+0

对不起,这是我第一次。 :)我做了复制粘贴,我认为这是指导的目的! – Woo

0

根据你放什么在你的描述,它看起来像你”至少在你的一条路线中丢失散列火箭(=>)。但是,由于您添加了resources :articles这一行,因此resources关键字会自动生成这些常见路由(请参阅Rails API了解更多详细信息),因此我认为生成此错误的行可能会完全删除。

routes.rb文件应该可能只是看起来像这样:

Rails.application.routes.draw do 
    get 'welcome/index' 
    resources :articles 
    root 'welcome#index' 
end 

或者,你遇到问题的途径可以被改写为:

get "/articles/:id" => "articles#show" 

或在所描述的方法guide

get '/articles/:id', to: 'articles#show'  
+0

'=>'和':'都可以。 –

+0

好吧(这实际上就是我写的),但是OP缺少这两个......更不用说,他们路线中的“articles#show”部分缺少了引号,这也是我期望产生的引号错误。 – kohrVid

+0

谢谢你的帮助。 – Woo

0

如果您删除此行:

article get /articles/:id(.:format) articles#show 

应该得到错误的旅程。

此行格式不正确,它试图完成resources :articles行已完成的工作。