使用Devise和Facebook-Omniauth。 User
上的一个属性是名为“photo
”的字符串。我想在用Facebook注册时抓住用户的脸书照片。
我无法编辑photo
,即使在控制台中也是如此:
2.0.0-p481 :002 > u.photo = "lol"
=> "lol"
2.0.0-p481 :003 > u
... #<User id: 12 photo: nil>
也相关:
我有一个为user
创建控制器运行的参数清除程序,但我已列入白名单:照片。
def configure_permitted_parameters
devise_parameter_sanitizer.for(:sign_up) { |u| u.permit(:username,
:email, :password, :password_confirmation, :remember_me, :photo) }
end
另外:在控制器中创建Omniauth User
:
where(provider: auth.provider, uid: auth.uid).first_or_create do |user|
user.provider = auth.provider
user.uid = auth.uid
user.email = auth.info.email
user.password = Devise.friendly_token[0,20]
user.photo = (auth.info.image + "?type=large").gsub("http","https")
end