我正在尝试很长时间并且谷歌关于我无法摆脱它的问题。任何人都可以解释为什么会发生这种情况以及如何解决它。
def new
self.resource = resource_class.new(sign_in_params)
clean_up_passwords(resource)
respond_with(resource, serialize_options(resource))
end
错误位于以下行中 respond_with(resource,serialize_options(resource))
当我注册时,会发送确认链接。当我点击链接时出现上述错误,这是我的网址
http://localhost/users/sign_in.47
更新1
这是我对confirmmations_controller.rb的展示行动
def show
self.resource = resource_class.confirm_by_token(params[:confirmation_token])
yield resource if block_given?
if resource.errors.empty?
set_flash_message(:notice, :confirmed) if is_flashing_format?
respond_with_navigational(resource){ redirect_to after_confirmation_path_for(resource_name, resource) }
else
respond_with_navigational(resource.errors, status: :unprocessable_entity){ render :new }
end
end
def after_sign_up_or_sign_in_path_for resource
User.where(id: resource.id).update_all(online: true)
dashboard_path
end
我需要在用户登录后将其更新为在线,所以我使用了资源。这让我感到很麻烦
答案 0 :(得分:4)
在ApplicationController中,尝试添加此行(如果它不存在):
respond_to :html, :json
答案 1 :(得分:1)
主要问题是网址末尾的.47
。这可能是您的用户ID。但需要找到它的来源。您的确认链接可能存在一些问题。
根据您更新的问题,请更改after_sign_up_or_sign_in_path_for
方法中的以下一行。
将此行User.where(id:resource.id).update_all(online:true)更改为resource.update_attribute(:online,true)