Ruby 未定义的方法';出版';

Ruby 未定义的方法';出版';,ruby,Ruby,我刚刚开始学习RubyonRails,并在《Rails4入门》第三版第151页第7章上盖章 我生成的控制器如下所示; $rails生成控制器控制器名称[操作][选项]。这一个工作正常,但当我试图为用户生成一个控制器时 $rails生成控制器用户。我收到了以下错误消息 /routing/mapper.rb:328:在检查部分:缺少:路由定义上的控制器键,请检查您的路由。(辩论) 这就是我的路线 Rails.application.routes.draw do get 'controller_n

我刚刚开始学习RubyonRails,并在《Rails4入门》第三版第151页第7章上盖章

我生成的控制器如下所示; $rails生成控制器控制器名称[操作][选项]。这一个工作正常,但当我试图为用户生成一个控制器时 $rails生成控制器用户。我收到了以下错误消息

/routing/mapper.rb:328:在检查部分:缺少:路由定义上的控制器键,请检查您的路由。(辩论)

这就是我的路线

Rails.application.routes.draw do
  get 'controller_name/[actions]'

  get 'controller_name/[options]'

  root :to => "articles#index"
  resources :articles
  root :to => 'users#show'

end
我添加了最后一条路线(root:to=>“users#show”


Stackoverflow社区很棒。我从档案馆得到了很多帮助。

您看到的错误是因为以下几行:

获取“控制器名称/[操作]”

假设您要将
GET localhost:3000/welcome
路由到
PagesController\welcome
。您需要在路由中指定路径和控制器操作:

get '/welcome', controller: 'pages#index'
我真的建议你仔细阅读路由

除此之外,代码中还有一些其他错误。下面是一个带注释的版本:

Rails.application.routes.draw do
  # These two routes are invalid
  get 'controller_name/[actions]'
  get 'controller_name/[options]'

  # This routes the root of your site (localhost:3000/) 
  # to ArticlesController#index
  # 
  # This should be moved to the top of the file
  root :to => "articles#index"
  resources :articles

  # You can't have two root routes!
  root :to => 'users#show'
end

祝您好运,欢迎使用Rails!

奇怪的是,您在其中有一个重复的
get
指令。通常,如果您生成一个控制器,您应该执行
resources:users