新创建的控制器上的rails 3中未初始化的常量错误

时间:2011-11-02 19:04:35

标签: ruby-on-rails ruby-on-rails-3.1

我使用

将一个会话控制器添加到我的应用程序中以进行用户登录/注销
  

rails g controller Session new create destroy

然后将以下行添加到我的路径文件中:

  

资源:sessions,:only => [:new,:create,:destroy]
       匹配'/ signup',:to => “用户#新”
       匹配'/ signin',:to => “会话#新”
       匹配'/ signout',:to =>的会话#破坏'

当我在控制台中执行rake routes时,路线会显示,但是当我在浏览器中启动应用程序时,我收到此错误:

  

未初始化的常量SessionsController

提前致谢!

2 个答案:

答案 0 :(得分:6)

您创建了一个Session控制器,而不是Sessions控制器。由于它是单数,你想要一个单一的路线:

resource :session, :only => [:new, :create, :destroy]

答案 1 :(得分:3)

我今天遇到了这个问题,发现我必须做三件事,1)使用资源(不是资源); 2)手动提供控制器,3)使用资源手动设置form_for标签中的URL(可能不适用于您的情况)......

# routes.rb
resource :session, :only => [:new, :create, :destroy], :controller => 'session'

#.../new.html.erb
<% form_for @session, :url => session_path do |f| %>

如果像我一样,您的控制器名称,文件名等都是单数的,那么指定控制器很重要。

这显然与bug in rails

有关