我有一个rails应用程序,用户可以通过twitter登录/使用omniauth。 它返回uid和昵称的正确值,但我无法检索配置文件图像和用户描述。
以下是我的代码:
应用/模型/ user.rb
def self.from_omniauth(auth)
where(auth.slice(:provider, :uid)).first_or_create do |user|
user.provider = auth.provider
user.uid = auth.uid
user.name = auth.info.nickname
user.image = auth.info.image
user.description = auth.info.description
end
end
def self.new_with_session(params, session)
if session["devise.user_attributes"]
new(session["devise.user_attributes"]) do |user|
user.attributes = params
user.valid?
end
else
super
end
在我看来:
应用/视图/用户/ show.html.erb
<%= @user.name %>
<%= @user.description %>
<%= image_tag @user.image %>
但它不会从用户的推特账号中提取价值。
我错过了什么?
答案 0 :(得分:0)
您是否已尝试将auth.info打印到控制台(或使用调试器进行检查)以查看返回的内容?
答案 1 :(得分:0)
现在正在纠正,问题是我尝试使用同一个帐户,他已经通过Twitter登录了 - 所以新的omniauth参数如描述和图像没有更新。我再次尝试使用新的Twitter帐户,它完美无缺。