背景
我已经Devise::RegistrationsController
使用一个名为DeviseUsersController
.
我需要覆盖该create
操作 - 我之前使用super
然后执行了需要完成的其他事情,但是,这不再满足我的要求。
所以我检查了github 上的设计代码,并尝试通过一些调整重新创建它。但是,我从第一行开始就遇到了问题......
编码
class DeviseUsersController < Devise::RegistrationsController
...
def build_resource
super
end
def sign_up_params
super
end
def create
build_resource(sign_up_params)
...
end
end
错误
super: no superclass method `sign_up_params' for #<DeviseUsersController:0x007f8f2d09a538>
问题
为什么会出现这个错误?基于Devise::RegistrationsController 代码,很明显该方法不是私有的,存在。
版本:
- 导轨 3.2.13
- 红宝石 1.9.3
- 设计 2.2.3
编辑 将代码更改为:
class DeviseUsersController < Devise::RegistrationsController
...
def create
build_resource(sign_up_params)
...
end
protected
def build_resource
super
end
def sign_up_params
super
end
end
还是不行。