继续得到路由错误..我做错了什么?

时间:2012-12-06 02:27:07

标签: ruby-on-rails ruby-on-rails-3

我正在做rails的入门课程,到目前为止已完成以下内容

  1. 制作了一个新的rails应用:rails new shovell(" shovell"是该应用的名称)
  2. 安装了所有宝石,而不是:bundle install
  3. 生成模型rails generate model Story name link
  4. 生成控制器rails generate controller Stories index
  5. 现在当我指向http://localhost:3000/stories时,我收到一条错误,上面写着"路由错误 没有路线匹配[GET]" /故事" "

    以下是我的routes.rb

    Shovell::Application.routes.draw do
      get "stories/index"
    # a bunch of comments
    end
    

    所以我不知道我做错了什么,以及为什么它没有显示默认的欢迎信息,而是给我一个错误。谢谢你的帮助!

2 个答案:

答案 0 :(得分:2)

但是,如果你这样做:

http://localhost:3000/stories/index

你可能会得到这个页面,虽然这不是轨道方式。

首先,阅读并理解rails routing guide

然后,为了修复您的代码,您可以在路由上编写

Shovell::Aplication.routes.draw do
  resources :stories
end

或者,如果您想要自定义路线而不是休息资源

Shovel::Application.routes.draw do
  match "stores", to: "my_controller#my_action"
end

您还可以命名自定义路线

Shovel::Application.routes.draw do
  match "stores", to: "my_controller#my_action", as: :store_index
end

因此,使用名称,您可以在rails app上使用路线名称

link_to("Store Index", store_index_path)

答案 1 :(得分:0)

您已定义到/stories/index的路线,但您尚未将其定义为/stories,这就是失败的原因。

你应该像这样定义这条路线:

 get '/stories', :to => "stories#index"

有关详细信息,请参阅The Routing Guide