2017-05-20 110 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行已完成的工作。