User テーブルに「image」という列があります
この画像には、ユーザーの 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 のデータを使用して、ユーザー テーブル内の「画像」列を更新する方法を知っている人はいますか?