Rails NameError (неинициализированная константа регистрации): - PullRequest
1 голос
/ 07 августа 2011

В настоящее время я использую Cancan, и у моих пользователей разные роли. Я только хочу, чтобы люди могли регистрировать пользовательские учетные записи пользователей, а администраторы бизнес-аккаунтов будут делать это.

Итак, теперь у меня есть это в моих силах. Rb

  def initialize(user)
    user ||= User.new  
    ... 
    # You can only create accounts that are consumers
    can :create, User do |user|
      user.role? :consumer 
    end

и в моем контроллере / users / registrations_controller.rb

class Users::RegistrationsController < Devise::RegistrationsController
  load_and_authorize_resource
end

и config / rout.rb:

  devise_for :users, :controllers => { 
    :registrations => "users/registrations"
  }

Теперь, когда я захожу на страницу регистрации, я вижу "неинициализированную константу регистрации" без какой-либо трассировки стека. Есть идеи?

Ответы [ 2 ]

0 голосов
/ 14 августа 2014

Проблема с маршрутами, пожалуйста, выполните следующие шаги

 1. $ rake routes, you will see the list of routes 

 2. In your config/routes.rb write the route you need, In my case the route to create a new user was,     
   devise_for :users,  :controllers => { :new_user_registration => "users/registrations#new" }
 3. restart rails server
0 голосов
/ 14 июня 2012

Пример моего кода

class ApplicationController < ActionController::Base
  authorize_resource
  check_authorization
end

class Users::SessionsController < Devise::SessionsController
  skip_authorize_resource
  skip_authorization_check
end

Для load_and_authorize_resource вам потребуется skip_load_and_authorize_resource.И весь этот код применим для пользовательского контроллера devise.Просто создайте его.

...