在routes.rb文件中:root "pages#index"
pages_controller.rb文件
class PagesController < ApplicationController
def index
render 'home'
end
def about
end
end
查看名为home.html.haml
的
rake routes
返回
Prefix Verb URI Pattern Controller#Action
home GET /home(.:format) pages#home
about GET /about(.:format) pages#about
localhost只是说“我们很抱歉,但出了点问题。”,控制台说ActionController::RoutingError (No route matches [GET] "/home"):
On Rails 4.2.0.beta2
*编辑Rails版本和控制台错误
答案 0 :(得分:1)
确实,rake routes
表示GET /home
将匹配pages#home
,页面控制器中的主页操作。
您能否向我们展示更多您的routes.rb
文件?
此外,为什么不将home.html.haml文件重命名为index.html.haml文件,因此您的索引操作可以成为
def index
end
如果您没有指定要渲染的视图,Rails将尝试查找包含您的操作名称的视图。
答案 1 :(得分:0)
我会将你的routes.rb文件更新为:
root 'pages#index'
get '/home', to: 'pages#index'
get '/about', to: 'pages#about'
正如本杰明所建议的那样,我认为将home.html.erb重命名为index.html.erb是一个更好的设计。这样您就可以从索引方法中删除render 'home'
。
奇怪的是,您的rake routes
输出表明/ home将被重定向到#home页面,这是您不具备的控制器方法。