Devise Invitable:未初始化的常量

Fer*_*ano 9 initialization ruby-on-rails constants invitation devise

我正在使用设计,工作正常,现在我尝试使用devise_invitable.我正确安装了它,但是当我尝试访问时出现错误

HTTP://本地主机:3000 /用户/邀请/新

错误是:

Started GET "/users/invitation/new" for 127.0.0.1 at 2011-07-06 20:47:07 -0300

ActionController::RoutingError (uninitialized constant Users):


Rendered /Users/Fernando/.rvm/gems/ruby-1.9.2-head/gems/actionpack-3.0.7/lib/action_dispatch/middleware/templates/rescues/routing_error.erb within rescues/layout (1.9ms)


The routes looks like ok, and I dont know why it return this error.
Run Code Online (Sandbox Code Playgroud)

路线:

accept_user_invitation
GET    /users/invitation/accept(.:format)
   {:action=>"edit", :controller=>"devise/invitations"}

user_invitation
POST   /users/invitation(.:format)              
   {:action=>"create", :controller=>"devise/invitations"}

new_user_invitation 
GET    /users/invitation/new(.:format)          
   {:action=>"new", :controller=>"devise/invitations"}
Run Code Online (Sandbox Code Playgroud)

小智 12

实际上,您必须将邀请控制器放在users目录下app/controllers,才能使其正常工作.

所以你最终得到:

/app/controllers/users/invitations_controller.rb
Run Code Online (Sandbox Code Playgroud)

这样做可以消除这个unitialized constant错误.


nic*_*des 8

尝试改变

devise_for :users, controllers: { invitations: 'users/invitations' }
Run Code Online (Sandbox Code Playgroud)

devise_for :users, controllers: { invitations: 'devise/invitations' }
Run Code Online (Sandbox Code Playgroud)