使用Devise自定义注册控制器丢失模板

时间:2011-09-10 21:46:19

标签: ruby-on-rails ruby-on-rails-3 devise

当使用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')执行相同的页面。如何更正此问题?

感谢。

2 个答案:

答案 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'