我是RoR的新手,我正在尝试获得一个非常基本的网站。我的主页工作正常,但是当我尝试添加新页面时,我会在日志中看到“无路由匹配”。以下是佣金路线的输出:
Prefix Verb URI Pattern Controller#Action
inventing_index GET /inventing/index(.:format) inventing#index
ideas_index GET /ideas/index(.:format) ideas#index
root GET / ideas#index
然而,当我去mysite.com/inventing或mysite.com/inventing/index时,我得到no route matches错误。 mysite.com/按预期显示app / views / ideas.erb。我所做的只是rails generate controller inventing index
。我还需要做些什么来激活路线吗?
我正在运行ruby 2.0.0p247并使用乘客/ apache在centos 6上运行4.0.0。我安装了所有ruby / rails /乘客的东西,所以它可能没有正确安装。
由于
编辑:这是我的routes.db文件:
Rortest::Application.routes.draw do
get "inventing/index"
get "ideas/index"
root to: 'ideas#index'
end
答案 0 :(得分:0)
tldr:您的问题可能就是路线。将get 'inventing/index'
更改为get 'inventing/index'=> 'inventings#index'
以正确指向路由到您的控制器操作。
添加新页面/路线时,您需要做四件事。我通常按此顺序执行静态页面:
您已使用rails generate controller inventing index
执行此操作,但请确保:
app/controllers
文件夹中,确实有一个名为inventings_controller.rb
inventings_controller.rb
中,您至少拥有以下内容:
class InventingsController < ApplicationController
def index
end
end
确保:
app/views/inventings
文件夹中,您有一个名为index.html.erb <h1>Testing123</h1>
,这样您就可以看到它是否正常工作。看起来这可能是问题所在。在routes.rb
文件中,您需要:
get 'inventing/index' => 'inventings#index'
您的root to
有效,因为它实际上直接指向您的控制器操作,但是导轨不够智能,无法猜测inventing/index
应该转到您{{1}中的index
操作控制器。
您可以在命令行中使用ctrl + c执行此操作,然后再次inventing**s**
启动它。