Ruby on rails指南

时间:2017-05-20 23:16:29

标签: ruby-on-rails ruby

有关如何设置博客的指南,我已达到5.7 对于本节,它会告诉您如何显示该文章,但在执行完步骤之后,我只会在尝试运行rails服务器时收到错误。
它确切地说它是路线中的语法错误 该行为"article get /articles/:id(.:format) articles#show",错误指向:id 我不确定该怎么做,我查看了指南的路线部分,我认为这是一条有效的路线。

routes.rb包含

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

使用命令rails server时收到的确切消息是:

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

3 个答案:

答案 0 :(得分:3)

您尝试制作的路线格式不正确,我可以说您从字面上粘贴了rails routes命令的输出。

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

自:

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

尝试:

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

答案 1 :(得分:0)

根据您在描述中的内容,看起来您在其中一条路线中至少缺少一个哈希火箭(=>)。但是,当您添加resources :articles行时,我认为可能会完全删除产生此错误的行,因为resources关键字会自动生成这些常见路由(请参阅{{3更多细节)。

您的routes.rb文件应该如下所示:

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

或者,您遇到问题的路线可以改写为:

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

或采用Rails API中描述的方式:

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

答案 2 :(得分:0)

如果删除此行:

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

它应该得到错误。

此行未正确格式化,并且正在尝试使用resources :articles行完成已完成的操作。