我正在尝试从Devise中的注册控制器覆盖create方法,以包含Recaptcha验证(如here和here所示):
class RegistrationsController < Devise::RegistrationsController
def create
if verify_recaptcha
super
else
build_resource
clean_up_passwords(resource)
flash[:alert] = "Bad words."
render_with_scope :new
end
end
end
也改变了我的routes.rb:
map.devise_for :users, :controllers => {:registrations => "registrations"}, :path_names => {
:sign_up => 'signup',
:sign_in => 'login',
:sign_out => 'logout'
}
尝试访问新的注册页面时(使用新路径名称:http://localhost:3000/users/signup),会出现以下错误:
LoadError in RegistrationsController#new
Expected /home/benoror/project/app/controllers/registrations_controller.rb to define RegistrationsController
任何帮助表示感谢。
BTW ,我正在使用Devise 1.0.11和Rails 2.3.10,谢谢!
答案 0 :(得分:5)
您的控制器是否在用户模块中?如果是这样,您将需要
class Users::RegistrationsController和
{:registrations => "users/registrations"}
编辑: According to José Valim,自定义控制器在Devise 1.1之前无效。没有理由开发&lt; Rails 3 imho。对不起,我在原帖中错过了。