如何解决用户上传了背景?
| 我希望用户能够上传图片用作其个人资料的背景(users#show)。查看某些具有该功能的网站的来源(例如Twitter),似乎为用户分配了html正文标签,并且该正文标签的相应CSS背景图像已链接到他们上传的图像。 关于如何执行此操作的任何想法? (注意:我目前正在使用回形针进行图像上传,但是会将其与Amazon S3 /类似服务集成) 我曾考虑过将ruby实例变量从我的用户控制器注入CSS文件/脚本,以便它是动态的,但我不知道这样做是否可行。可能有更好的方法。解决方法
我已经在一个项目中实现了类似的功能。我将给出概念并给出一个代码示例。我将让您理解逻辑或学习一些代码示例以适合您的系统实现。
我会为此使用一个助手。
在app / views / layouts / application.html.erb中
<head>
...
</head>
<body style=\"<%= show_user_bg %>\">
...
</body>
在app / helpers / application_helper.rb中
module ApplicationHelper
def show_user_bg
\"background:transparent url(#{@user.background_image}) no-repeat fixed left top;\"
end
end
只需确保您的用户模型具有background_image列并已设置即可。
使用帮手可以使其更加动态和清洁。例如,您可以抛出条件:
module ApplicationHelper
def show_user_bg
# Show user background
if user_signed_in?
\"background:transparent url(#{@user.background_image}) no-repeat fixed left top;\"
# Otherwise,show a default background image
else
\"background:transparent url(\'/images/default_bg.png\') no-repeat fixed left top;\"
end
end
end
希望有帮助!
,由于它取决于数据,因此我将在视图中简单地使用嵌入式样式。
假设控制器已将模型实例加载到@profile
中,该实例具有名为Paper4ѭ的Paperclip附件属性,则...
<body style=\"background-image:url(<%= @profile.background_image.url %>)\">
...
</body>
,有多种方法可以做到这一点。我看过Google搜索页面。它在html主体的底部添加了一个图片标记,绝对位置为0,0,并将index设置为-2。
另一种方法是设置body或您的主要div的背景图像,您可以使用内联css属性(例如
<body style=\"background-image: \'url(<%= user_image -%>)\'\">
其中user_image是用于为当前用户计算背景图像url的辅助方法,该方法也应处理默认图像,即,如果用户未选择任何图像,则它应返回默认图像(可能是透明图像)。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。