即使在控制台中,属性也不会改变

时间:2015-02-03 12:10:23

标签: ruby-on-rails facebook devise omniauth

使用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","htt­ps")
end

0 个答案:

没有答案