我正在做rails的入门课程,到目前为止已完成以下内容
rails new shovell
(" shovell"是该应用的名称)bundle install
rails generate model Story name link
rails generate controller Stories index
现在当我指向http://localhost:3000/stories
时,我收到一条错误,上面写着"路由错误
没有路线匹配[GET]" /故事" "
以下是我的routes.rb
:
Shovell::Application.routes.draw do
get "stories/index"
# a bunch of comments
end
所以我不知道我做错了什么,以及为什么它没有显示默认的欢迎信息,而是给我一个错误。谢谢你的帮助!
答案 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