我的用户表中有一个名为“图像”的列
此图像存储从用户的 Twitter 帐户中提取的头像的 URL。
用户表的一部分
create_table "users", :force => true do |t|
t.string "image"
end
我正在使用omniauth 来允许用户使用twitter、取消身份验证、重新身份验证等进行身份验证。
在他们取消身份验证并尝试重新进行身份验证之后,我想验证头像在我的网站上是否匹配。这是我正在使用的代码:
class AuthenticationsController < InheritedResources::Base
def create
omniauth = request.env['omniauth.auth']
authentication = Authentication.find_by_provider_and_uid(omniauth['provider'], omniauth['uid'])
if authentication
user = User.find(authentication.user_id)
sign_in_and_redirect user
else current_user
token = omniauth['credentials']['token']
secret = omniauth['credentials']['secret']
current_user.authentications.create!(:provider => omniauth['provider'], :uid => omniauth['uid'], :token => token, :secret => secret)
current_user.update_attribute(:image => omniauth['info']['image'])
flash[:success] = "Authentication successful"
sign_in_and_redirect current_user
end
end
当他们尝试重新验证时,基本上就是这条线
current_user.update_attribute(:image => omniauth['info']['image'])
但是我遇到了错误。上面这个特定的代码给了我wrong number of arguments (1 for 2)
。我尝试了其他方法,但我得到了undefined method update_attribute
。任何人都知道如何使用来自 twitter + omniauth 的数据更新用户表中的“图像”列?