当使用recaptcha for Devise时,我必须创建一个新的自定义注册控制器,我的问题是,当他们的电子邮件,密码或密码确认错误时,我得到一个丢失的模板错误,因为它击中了一条甚至没有的路由存在。
Template is missing
Missing template registrations/new
recaptcha会自行处理错误并呈现回同一页面而不是其他页面。
class RegistrationsController < Devise::RegistrationsController
def create
if verify_recaptcha
super
else
flash.delete :recaptcha_error
build_resource
clean_up_passwords(resource)
flash[:alert] = "There was an error with the recaptcha code below."
render :template => '/devise/registrations/new'
end
end
end
devise_for :users, :controllers => { :registrations => "registrations" }
它应该与recaptcha对错误('/devise/registrations/new'
)执行相同的页面。如何更正此问题?
感谢。
答案 0 :(得分:7)
尝试将模板从/views/devise/registrations
移至/views/registrations
。 (并将代码中的引用从/ devise / registrations / new更改为just / registrations / new。)
答案 1 :(得分:0)
将以下行添加到config/application.rb
文件
config.paths['app/views'] << 'app/views/devise'