服务器说没有定义任何路由,即使它们是

时间:2016-04-18 02:07:52

标签: ruby-on-rails routes localhost

我在routes.rb

中定义了三条路线
Rails.application.routes.draw do

  root to: 'pages#lottery'

  get 'pages/about'
  get 'pages/contact'
  get 'pages/lottery'

end

当我跑步"耙路线"在我的命令行中,我得到以下内容:

      Prefix Verb URI Pattern              Controller#Action
         root GET  /                        pages#lottery
  pages_about GET  /pages/about(.:format)   pages#about
pages_contact GET  /pages/contact(.:format) pages#contact
pages_lottery GET  /pages/lottery(.:format) pages#lottery

但是当我到了localhost:3000 / pages / contact我收到错误:

"No route matches [GET] "/pages/contact.html.erb"

还有"You don't have any routes defined!"

有人知道这个问题吗?

3 个答案:

答案 0 :(得分:0)

Ugh菜鸟的错误。我在命令行中打开了两个选项卡。我的rails s页面位于不同的目录中。感谢大家的帮助,我很感激。

答案 1 :(得分:-1)

您不应该访问网址/pages/contact.html.erb,它应该只是/pages/contact.html

Rails提供了很好的帮助,可以轻松获得正确的路径,例如pages_contact_path(来自rake routes)。

答案 2 :(得分:-1)

根据您列出的路线,您的pages_controller.rb应包含三种方法。

<强> pages_controller.rb

class PagesController < ApplicationController
  def lottery
  end

  def about
  end

  def contact
  end
end

<强>视图/页/ contact.html.erb

<p>Hello World</p>

启动rails服务器 - rails s并导航至localhost:3000/pages/contact,您应该会看到Hello World