我正在
错误
undefined method id for nil class
这是
form helper
def verify_authy_form(opts = {}, &block)
opts = default_opts.merge(:id => 'devise_authy').merge(opts)
form_tag([resource_name, :verify_authy], opts) do
buffer = hidden_field_tag(:"#{resource_name}_id", @resource.id)
buffer << capture(&block)
end
end
我相信
@resource
是
nil
所以当它发生的时候
@resource.id
触发
错误
我相信这个表格是从这个
controller action
# verify 2fa
def POST_verify_authy
token = Authy::API.verify({
:id => @resource.authy_id,
:token => params[:token],
:force => true
})
if token.ok?
@resource.update_attribute(:last_sign_in_with_authy, DateTime.now)
session["#{resource_name}_authy_token_checked"] = true
remember_device if params[:remember_device].to_i == 1
if session.delete("#{resource_name}_remember_me") == true && @resource.respond_to?(:remember_me=)
@resource.remember_me = true
end
sign_in(resource_name, @resource)
set_flash_message(:notice, :signed_in) if is_navigational_format?
respond_with resource, :location => after_sign_in_path_for(@resource)
else
handle_invalid_token :verify_authy, :invalid_token
end
end
你可以通过检查并包括
rake routes
. 因此,也许你应该调试这两段代码,控制器动作负责输入
@资源
form