Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/56.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails ruby中的控制器路由_Ruby On Rails_Ruby_Routing - Fatal编程技术网

Ruby on rails ruby中的控制器路由

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# 我理解控制器应

我正在尝试构建一个简单的rails应用程序,但是我遇到了一个路由错误。这是控制器:

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