2

我正在创建一个网站,用户可以发布工作并且用户可以登录、注册等。我已经创建了我的工作模型并为登录/注册部分创建了我的用户模型。当我尝试加载 rails 服务器时,我不断在下面收到此错误,并且无法弄清楚我做错了什么或如何修复。我最初试图使用设计和创建用户模型,但遇到了问题,所以我删除了它的文件。我想知道我是否删除了某些内容,或者我的 routes.rb 文件中是否缺少某些内容。有人可以帮助或指出我正确的方向吗?我也会发布我的 routes.rb 文件。感谢您的任何指导,因为我仍然是 Rails 新手。我添加到 routes.rb 文件中的唯一内容是 root :to => "sessions#login" 及以下内容。我确定在创建模型和控制器时添加了其他信息。

/home/whitey7/.rvm/gems/ruby-1.9.3-p194/gems/actionpack-3.2.8/lib/action_dispatch/routing/mapper.rb:181:在“default_controller_and_action”中:缺少:控制器(ArgumentError)* *

路由.rb

Application.routes.draw do 
 get "sessions/login,"
 get "sessions/home,"
 get "sessions/profile,"
 get "sessions/setting"
 get "users/new"

 resources :jobs 



root :to => "jobs#index"
root :to => 'home/index'
 root :to => "sessions#login"
match "signup", :to => "users#new"
match "login", :to => "sessions#login"
match "logout", :to => "sessions#logout"
match "home", :to => "sessions#home"
match "profile", :to => "sessions#profile"
match "setting", :to => "sessions#setting"
4

3 回答 3

7

我认为您在 routes.rb 中仍然有一条无效的路线。请重新检查所有路由,对应的控制器和动作。还请分享完整的错误跟踪,这样我们就可以查明问题所在。

于 2012-12-08T18:08:07.877 回答
2

请检查作业控制器是否仍然存在。因为这是你的路由声明中的第一个根指令(而且,有多个指令仍然没有意义),Rails 正在检查这个根路由是否可用。似乎作业控制器丢失并导致此错误。

于 2012-11-11T00:02:19.527 回答
1

首先,查看 Rails路由文档。我认为您收到此错误是因为您无法定义路由文件。我在您的路线文件中发现的问题是:-

一种。您的路由文件中有三个不同的根目录。

root :to => "jobs#index"
root :to => 'home/index'
 root :to => "sessions#login"

湾。您正在多次定义相同的路线。

 get "sessions/login,"
 get "sessions/home,"
 get "sessions/profile,"
 get "sessions/setting"
 get "users/new"

match "signup", :to => "users#new"
match "login", :to => "sessions#login"
match "home", :to => "sessions#home"
match "profile", :to => "sessions#profile"
match "setting", :to => "sessions#setting"

解决方案可能如下:-

一种。首先修复根路径。无论是作业索引、主页索引还是会话登录,您要创建哪个路径。

湾。我认为您正在尝试这样定义您的路线

match "signup", :to => "users#new", via: :get
match "login", :to => "sessions#login", via: :get
match "home", :to => "sessions#home", via: :get
match "profile", :to => "sessions#profile", via: :get
match "setting", :to => "sessions#setting", via: :get
于 2014-03-17T09:39:05.373 回答