gpt4 book ai didi

ruby-on-rails - 用户上传的背景?

转载 作者:太空宇宙 更新时间:2023-11-03 17:18:48 25 4
gpt4 key购买 nike

我希望用户能够上传图片作为他们个人资料的背景 (users#show)。查看一些具有该功能的网站(例如 Twitter)的源代码,似乎为用户分配了一个 html 主体标签,并且该主体标签的相应 CSS 背景图像链接到他们上传的图像。

关于如何执行此操作的任何想法?(注意:我目前正在使用回形针上传图片,但会将其与 Amazon S3/类似服务集成)

我考虑过从我的用户 Controller 向 CSS 文件/脚本注入(inject)一个 ruby​​ 实例变量,以便它是动态的,但我不知道这是否可行。可能有更好的方法。

最佳答案

我在一个元素中实现了类似的东西。我将阐述这个概念并给你一个代码示例。我会让您理解逻辑或使用一些代码示例来适合您的系统实现类型。

我会为此使用助手。

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

希望对您有所帮助!

关于ruby-on-rails - 用户上传的背景?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5659540/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com