Ruby on rails ruby中的控制器路由
我正在尝试构建一个简单的rails应用程序,但是我遇到了一个路由错误。这是控制器:Ruby on rails ruby中的控制器路由,ruby-on-rails,ruby,routing,Ruby On Rails,Ruby,Routing,我正在尝试构建一个简单的rails应用程序,但是我遇到了一个路由错误。这是控制器: class PostsController < ActionController::Base def index @var = "Rails is amazing" end end 路由错误如下: uninitialized constant PostsController im访问的url如下所示: http://localhost:3000/posts# 我理解控制器应
class PostsController < ActionController::Base
def index
@var = "Rails is amazing"
end
end
路由错误如下:
uninitialized constant PostsController
im访问的url如下所示:
http://localhost:3000/posts#
我理解控制器应该在路由和文件名上都是多元化的。对于这样一个新手问题,我很抱歉我相信您在controllers文件夹中有posts\u controller.rb文件。在
posts\u controller.rb
文件中添加以下语法
class PostsController < ApplicationController
end
在终端中,如果您要键入CONTROLLER=posts rake routes
,您将得到以下输出
Prefix Verb URI Pattern Controller#Action
posts GET /posts(.:format) posts#index
POST /posts(.:format) posts#create
new_post GET /posts/new(.:format) posts#new
edit_post GET /posts/:id/edit(.:format) posts#edit
post GET /posts/:id(.:format) posts#show
PATCH /posts/:id(.:format) posts#update
PUT /posts/:id(.:format) posts#update
DELETE /posts/:id(.:format) posts#destroy
啊。因此,文件名必须是您的控制器。我给它起了一个名为PostsController的名字。这就解决了问题。谢谢,还有一个更简单的问题。看起来当我执行
%=@var%
时,变量不会被打印到视图中。在index.html.erb中,您需要添加
resources :routes
Prefix Verb URI Pattern Controller#Action
posts GET /posts(.:format) posts#index
POST /posts(.:format) posts#create
new_post GET /posts/new(.:format) posts#new
edit_post GET /posts/:id/edit(.:format) posts#edit
post GET /posts/:id(.:format) posts#show
PATCH /posts/:id(.:format) posts#update
PUT /posts/:id(.:format) posts#update
DELETE /posts/:id(.:format) posts#destroy