[英]Ruby on Rails match routing error
我正在尝试制作一个提供简单静态HTML页面的Rails应用程序。 我在这里遵循了Mikel的教程(涉及制作Pages控制器并设置一些路由),但是我一直收到错误消息。
我制作了一个app/views/site/pages/_about.html.erb
文件来包含我的“关于”页面。 启动rails server
,我尝试转到http://localhost:3000/about/
但是由于我有一个“未初始化的常量站点”,因此出现了路由错误。
如果您想看一下代码, 我的项目将上传到GitHub 。
编辑:这是我的config/routes.rb
文件:
NINAgallery::Application.routes.draw do
match ':page_name' => 'site/pages#show'
end
这是我的app/controllers/pages_controller.rb
文件的重要部分:
class PagesController < ApplicationController
layout 'site'
def show
@page_name = params[:page_name].to_s.gsub(/\W/,'')
unless partial_exists?(@page_name)
render 'missing', :status => 404
end
end
# extra code for handling 404 errors goes here
end
site/pages#show
表示Site::PagesController
的show操作
您要么需要将控制器放在路由所暗示的名称空间中,要么更改路由
PagesController中的最后一行是这样的:
ValidPartials = Site::PagesController.find_partials
这意味着PagesController包含在Site模块中。 但是您的应用程序中没有Site模块。
我认为简单删除Site ::应该可以解决问题:
ValidPartials = PagesController.find_partials
加上路线:
match ':page_name' => 'pages#show'
您的应用程序称为NINAgallery
。
更换Site
在pages_controller.rb
一行27 NINAgallery
。
PS:
我只是偷看了所谓的教程。 您正在养成非常非常不好的习惯。
一些非常好的基础知识:
如果您喜欢教程,请访问: http : //ruby.railstutorial.org/
并且有很多关于铁轨的书籍。 都好。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.