用户上传了背景?

| 我希望用户能够上传图片用作其个人资料的背景(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的辅助方法,该方法也应处理默认图像,即,如果用户未选择任何图像,则它应返回默认图像(可能是透明图像)。     

要回复问题请先登录注册