为什么我收到路由错误?

时间:2017-03-15 21:44:37

标签: ruby-on-rails

我正在关注RoR教程,并且教程中生成的路由文件与我计算机上生成的路由文件不同。教程中的那个是

Lecture::Application.routes.draw.do
  get 'say/hello'

我的文件已生成

Rails.application.routes.draw.do
  get 'say/hello'

这是否有所不同,因为我收到路由错误:

  

路由错误没有路由匹配[GET]“/ say / hello”

这是什么原因?

4 个答案:

答案 0 :(得分:0)

您需要指定路线的引导位置。 例如:(Rails Routing from the Outside In

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

或在你的情况下:

get 'say/hello', to: 'say#hello'

格式化为' controller_name#controller_action'

定义动作用途:

def hello
  #This is my hello action
end

答案 1 :(得分:0)

如果您在该控制器中有hello控制器和get 'say/hello', to: 'say#hello' 方法,

变化,

get '/say/hello', to: 'say#hello'

要,

'/say/hello'

观察,rake routes

如果您没有该控制器,

rails console中输入vowels.indexOf(newStr[i]) != -1并更新您的问题。

答案 2 :(得分:0)

#config/routes.rb

get 'say/hello' => 'say#hello' #Here say is controller and hello is action

#controllers/say_controller.rb

class SayController < ApplicationController
  def hello
    ...
  end
end

答案 3 :(得分:0)

你的控制器文件应该是:

say_controller.rb

Class SayController < ApplicationController
  def hello
   puts 'hello there'
  end
end

您的routes.rb文件应包含:

routes.rb

get '/anything/you_want/', to 'say#hello'

这应该可以解决问题