Ric*_*son 3 ruby-on-rails devise ruby-on-rails-4
我试图覆盖我的设计注册控制器,没有运气.
我终于让路线工作了,但现在我收到了一个superclass mismatch for class错误.
继承人我的设置:
注册控制器(app/controllers/users/registrations_controller.rb)
class RegistrationsController < Devise::RegistrationsController
def sign_up_params
devise_parameter_sanitizer.sanitize(:sign_up)
params.require(:user).permit(:email, :password, profile_attributes: [:username])
end
def new
super
end
def create
end
def update
super
end
end
Run Code Online (Sandbox Code Playgroud)
路线
root 'welcome#index'
devise_for :users, :controllers => {:registrations => "users/registrations"}
Run Code Online (Sandbox Code Playgroud)
查看
- edit.html.erb&& new.html.erb存在于文件夹中(app/views/users/registrations)
用户模型(以防万一)
class User < ActiveRecord::Base
# Include default devise modules. Others available are:
# :confirmable, :lockable, :timeoutable and :omniauthable
devise :database_authenticatable, :registerable,
:recoverable, :rememberable, :trackable, :validatable
has_one :profile
accepts_nested_attributes_for :profile
def profile
super || build_profile
end
end
Run Code Online (Sandbox Code Playgroud)
知道为什么会出现这个错误吗?
谢谢!
Wat*_*Box 11
您的控制器位于users目录下,但没有Users模块(您可能会说,它不在Users命名空间中).将控制器更改为:
module Users
class RegistrationsController < Devise::RegistrationsController
...
end
end
Run Code Online (Sandbox Code Playgroud)
或者将控制器移到目录中
应用程序/控制器/ registrations_controller.rb
| 归档时间: |
|
| 查看次数: |
3579 次 |
| 最近记录: |