0

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

4

1 に答える 1