上传的图像未显示在 rails 应用程序的 ruby 中(除头像以外的所有其他内容都在保存和更新)
uploaded image not displaying in ruby on rails app (everything else other than avatar are saving and updating )
您好,我正在使用回形针上传图片。问题是,当用户使用 fb 登录时,它会显示来自 fb 的个人资料图片,一旦他登录,他就可以在应用程序中更改个人资料图片。但更改后的图片没有显示。
我存储了默认图片,显示给使用电子邮件注册的用户。如何显示新上传的照片。
我的用户模型是,
has_attached_file :avatar, :styles => { :medium => "300x300>", :thumb
=> "100x100#" }
validates_attachment_content_type :avatar, :content_type => /\Aimage\/.*\Z/
def self.from_omniauth(auth)
where(provider: auth.provider, uid: auth.uid).first_or_create do |user|
user.fullname = auth.info.name
user.provider = auth.provider
user.uid = auth.uid
user.email = auth.info.email
user.image = auth.info.image
user.password = Devise.friendly_token[0,20]
user.skip_confirmation! unless user.confirmed?
end
end
我的申请助手是
module ApplicationHelper
def avatar_url(user)
if user.image
user.image
else
"/images/missing.png"
end
end
end
我的编辑视图
<div class="row">
<label class="col-xs-4" for="avatar">Profile picture</label>
<div class="col-xs-8">
<%= f.file_field :avatar %>
</div>
</div>
我的表演观点是,
<%= image_tag avatar_url(@user), class: "avatar-full" %>
SQL 翻译是:
(0.0ms) begin transaction SQL (0.0ms)
UPDATE "sessions"
SET "data" = ?, "updated_at" = ?
WHERE "sessions"."id" = ? [["data", "BAh7CEkiGXdhcmRlbi51c2VyLnVzZXIua2V5BjoGRVRbB1sGaSBJIiIkMmEk\nMTAkaWd6Nno3enNzUjdja2F5ZzJWUXlXZQY7AFRJIhBfY3NyZl90b2tlbgY7\nAEZJIjFpZnV2S0NTckczVDlhQmNEL0pIdnkwTTY0Rk9LaXdXTzIwdXd6eVBl\nQ0lFPQY7AEZJIgpmbGFzaAY7AFR7B0kiDGRpc2NhcmQGOwBUWwZJIgtub3Rp\nY2UGOwBGSSIMZmxhc2hlcwY7AFR7BkAQSSIwWW91ciBhY2NvdW50IGhhcyBi\nZWVuIHVwZGF0ZWQgc3VjY2Vzc2Z1bGx5LgY7AFQ=\n"],
["updated_at", "2016-05-18 15:39:41.667689"], ["id", 57]]
(96.6ms) commit transaction
取决于您用于回形针上传的字段
案例一
如果您的 Migration
中有 t.attachment :image
作为 field_name,那么,
在你的辅助模块中
请将user.image
改为user.image.url
或user.image.url(:thumb)
module ApplicationHelper
def avatar_url(user)
if user.image.present?
user.image.url #for original image
#user.image.url(:thumb) #for thumbnail
else
"/images/missing.png"
end
end
end
在你的模型中
has_attached_file :image
案例二
并且如果您在 Migration
中将 t.attachment :avatar
作为 field_name,那么,
在你的辅助模块中
请将user.image
改为user.avatar.url
或user.avatar.url(:thumb)
module ApplicationHelper
def avatar_url(user)
if user.avatar.present?
user.avatar.url #for original image
#user.avatar.url(:thumb) #for thumbnail
else
"/images/missing.png"
end
end
end
在你的模型中
在你的 Ominauth 方法中
user.avatar = auth.info.image
您好,我正在使用回形针上传图片。问题是,当用户使用 fb 登录时,它会显示来自 fb 的个人资料图片,一旦他登录,他就可以在应用程序中更改个人资料图片。但更改后的图片没有显示。 我存储了默认图片,显示给使用电子邮件注册的用户。如何显示新上传的照片。
我的用户模型是,
has_attached_file :avatar, :styles => { :medium => "300x300>", :thumb
=> "100x100#" }
validates_attachment_content_type :avatar, :content_type => /\Aimage\/.*\Z/
def self.from_omniauth(auth)
where(provider: auth.provider, uid: auth.uid).first_or_create do |user|
user.fullname = auth.info.name
user.provider = auth.provider
user.uid = auth.uid
user.email = auth.info.email
user.image = auth.info.image
user.password = Devise.friendly_token[0,20]
user.skip_confirmation! unless user.confirmed?
end
end
我的申请助手是
module ApplicationHelper
def avatar_url(user)
if user.image
user.image
else
"/images/missing.png"
end
end
end
我的编辑视图
<div class="row">
<label class="col-xs-4" for="avatar">Profile picture</label>
<div class="col-xs-8">
<%= f.file_field :avatar %>
</div>
</div>
我的表演观点是,
<%= image_tag avatar_url(@user), class: "avatar-full" %>
SQL 翻译是:
(0.0ms) begin transaction SQL (0.0ms)
UPDATE "sessions"
SET "data" = ?, "updated_at" = ?
WHERE "sessions"."id" = ? [["data", "BAh7CEkiGXdhcmRlbi51c2VyLnVzZXIua2V5BjoGRVRbB1sGaSBJIiIkMmEk\nMTAkaWd6Nno3enNzUjdja2F5ZzJWUXlXZQY7AFRJIhBfY3NyZl90b2tlbgY7\nAEZJIjFpZnV2S0NTckczVDlhQmNEL0pIdnkwTTY0Rk9LaXdXTzIwdXd6eVBl\nQ0lFPQY7AEZJIgpmbGFzaAY7AFR7B0kiDGRpc2NhcmQGOwBUWwZJIgtub3Rp\nY2UGOwBGSSIMZmxhc2hlcwY7AFR7BkAQSSIwWW91ciBhY2NvdW50IGhhcyBi\nZWVuIHVwZGF0ZWQgc3VjY2Vzc2Z1bGx5LgY7AFQ=\n"],
["updated_at", "2016-05-18 15:39:41.667689"], ["id", 57]]
(96.6ms) commit transaction
取决于您用于回形针上传的字段
案例一
如果您的 Migration
中有 t.attachment :image
作为 field_name,那么,
在你的辅助模块中
请将user.image
改为user.image.url
或user.image.url(:thumb)
module ApplicationHelper
def avatar_url(user)
if user.image.present?
user.image.url #for original image
#user.image.url(:thumb) #for thumbnail
else
"/images/missing.png"
end
end
end
在你的模型中
has_attached_file :image
案例二
并且如果您在 Migration
中将 t.attachment :avatar
作为 field_name,那么,
在你的辅助模块中
请将user.image
改为user.avatar.url
或user.avatar.url(:thumb)
module ApplicationHelper
def avatar_url(user)
if user.avatar.present?
user.avatar.url #for original image
#user.avatar.url(:thumb) #for thumbnail
else
"/images/missing.png"
end
end
end
在你的模型中
在你的 Ominauth 方法中
user.avatar = auth.info.image