Ruby on rails 在rails应用程序上使用TwitterAPI呈现配置文件图像
当用户使用twitter api登录时,我一直在尝试呈现用户的个人资料图片,但遇到了一些困难。此时没有错误,但图像未渲染 安装了gem“twitter” 这是我的user.rb文件Ruby on rails 在rails应用程序上使用TwitterAPI呈现配置文件图像,ruby-on-rails,ruby,ruby-on-rails-3,twitter-bootstrap,twitter,Ruby On Rails,Ruby,Ruby On Rails 3,Twitter Bootstrap,Twitter,当用户使用twitter api登录时,我一直在尝试呈现用户的个人资料图片,但遇到了一些困难。此时没有错误,但图像未渲染 安装了gem“twitter” 这是我的user.rb文件 class User < ActiveRecord::Base # Include default devise modules. Others available are: # :confirmable, :lockable, :timeoutable and :omniauthable devise :da
class User < ActiveRecord::Base
# Include default devise modules. Others available are:
# :confirmable, :lockable, :timeoutable and :omniauthable
devise :database_authenticatable, :omniauthable, :registerable,
:recoverable, :rememberable, :trackable, :validatable
has_many :lines
def profile_image_uri(size = :mini)
parse_encoded_uri(insecure_uri(profile_image_uri_https(size))) unless @attrs[:profile_image_url_https].nil?
end
def self.find_for_twitter_oauth(auth, signed_in_resource=nil)
user = User.where(:provider => auth.provider, :uid => auth.uid).first
if user
return user
else
registered_user = User.where(:email => auth.uid + "@twitter.com").first
if registered_user
return registered_user
else
user = User.create(name:auth.extra.raw_info.name,
provider:auth.provider,
profile_image_url:auth.uid + "https://pbs.twimg.com/profile_images/2284174872/7df3h38zabcvjylnyfe3_mini.png",
uid:auth.uid,
email:auth.uid+"@twitter.com",
password:Devise.friendly_token[0,20],
)
end
end
end
结束
关于我做错了什么,有什么建议吗?Auth Twitter Profile image url可以通过以下方式提取: 验证[:额外][:原始信息][:配置文件\图像\ url]
我应该把这一行添加到哪个文件?好的,谢谢。这是正确答案的一部分。我将写一个指南,当我完成如何将照片添加到twitter auth时,将其发布在这里。谢谢你的帮助
<% if user_signed_in? %>
<li> <a href="#"> <img src="<%= current_user.profile_image_url %>"> <%= current_user.name %> </a></li><li>
<%= link_to "Sign out", destroy_user_session_path,:method => :delete %></li>
<% else %>
<li><%= link_to user_omniauth_authorize_path(:twitter) do %>
<img src="https://g.twimg.com/dev/sites/default/files/images_documentation/sign-in-with-twitter-link.png">
<% end %>
</li>
create_table "users", force: true do |t|
t.string "email", default: "", null: false
t.string "encrypted_password", default: "", null: false
t.string "reset_password_token"
t.datetime "reset_password_sent_at"
t.datetime "remember_created_at"
t.integer "sign_in_count", default: 0, null: false
t.datetime "current_sign_in_at"
t.datetime "last_sign_in_at"
t.string "current_sign_in_ip"
t.string "last_sign_in_ip"
t.datetime "created_at"
t.datetime "updated_at"
t.string "provider"
t.string "uid"
t.string "name"
t.string "profile_image_url"
user = User.create(name:auth.extra.raw_info.name,
provider:auth.provider,
profile_image_url: auth[:extra][:raw_info][:profile_image_url],
uid:auth.uid,
email:auth.uid+"@twitter.com",
password:Devise.friendly_token[0,20],
)