我目前正在根据有关标记为仅电子邮件注册的设计教程建立一个项目,并且似乎遇到了一个我无法解决的特定错误。除了第 3 步找不到我添加的自定义方法(称为confirm
. 我已经告诉 Devise 使用
devise_for :users, :controllers => {:confirmations => 'confirmations'}
对于我的用户插件,但它忽略了我的控制器。
我有一个名为 Confirmations_controller.rb 的控制器,它包含以下代码:
class ConfirmationsController < Devise::ConfirmationsController
def show
self.resource = resource_class.find_by_confirmation_token(params[:confirmation_token])
super if resource.confirmed?
end
def confirm
self.resource = resource_class.find_by_confirmation_token(params[resource_name][:confirmation_token])
if resource.update_attributes(params[resource_name].except(:confirmation_token)) && resource.password_match?
self.resource = resource_class.confirm_by_token(params[resource_name][:confirmation_token])
set_flash_message :notice, :confirmed
sign_in_and_redirect(resource_name, resource)
else
render :action => "show"
end
end
确切的错误是:
undefined method `confirmed?' for #<User:0x425f130>
我正在使用 rails 3.2.9 版并设计 2.2.1 版
我只是在学习 rails 和 ruby,所以我真的希望有人可以帮助我。