Facebookでログインしたり、サインアップしたりできるアプリケーションを開発しています。このため、Facebookの画像またはアップロードの画像になり得る画像がありますが、これをモデルに配置する方法がわかりません。
私のモデル:
class User < ActiveRecord::Base
attr_accessible :name, :password, :password_confirmation, :big_image, :image, :mini_image
validates_confirmation_of :password
validates_presence_of :password, :on => :create, :unless => :from_facebook
validates_presence_of :name
validates_uniqueness_of :name
unless :from_facebook
mount_uploader :big_image, ImageUploader
end
def from_facebook
self.provider == "facebook"
end
def self.from_omniauth(auth)
where(auth.slice(:provider, :uid)).first_or_initialize.tap do |user|
user.provider = auth.provider
user.uid = auth.uid
user.name = auth.info.name
user.big_image = auth.info.image.gsub("=square","=large")
user.image = auth.info.image.gsub("=square","=normal")
user.mini_image = auth.info.image
user.oauth_token = auth.credentials.token
user.oauth_expires_at = Time.at(auth.credentials.expires_at)
user.save!
end
end
end
終わり
私が変更したい部分は次のとおりです。
unless :from_facebook
mount_uploader :big_image, ImageUploader
end
それは機能しないからです。