【问题标题】:Access Paperclip avatar from other views/resources in rails?从 rails 中的其他视图/资源访问 Paperclip 头像?
【发布时间】:2012-06-22 03:57:02
【问题描述】:

目前我正在使用 Paperclip 来处理我在 Rails 3 中的头像上传和使用。我有一个用户资源(带有控制器、模型、视图等),我正在将头像上传到(使用 users /new 视图),并且它们实际上是在将它们“嵌入”到 用户展示 视图中时上传和工作的。 (我得到损坏的图像,但我认为是因为本地服务器,因为在查看源代码时图像实际保存并链接到我的应用程序中的正确路径)现在,我有另一个名为 skills的资源>(也带有控制器、模型和视图)在 wich 视图中我也需要显示头像,但是每当我尝试在技能视图中嵌入/使用用户头像时,我都会收到以下错误(如果我尝试嵌入不同于 users/show 的另一个视图中的头像):

undefined methodavatar' for nil:NilClass`

为什么会这样?

另外,正如我所说,在显示视图中嵌入头像时,它们实际上是“嵌入”的,但我收到损坏的图像和以下路由错误:

No route matches [GET] "/public/assets/users/UserID/thumb/userimage.jpg"

我在本地主机上...是因为这个吗? (我猜是因为“userimage”它实际上保存在应用程序的那个路径上)

谁能解释一下这个路由错误发生了什么以及如何在多个视图中使用头像?我正在使用以下代码“嵌入”图像:

<%= image_tag @user.avatar.url(:thumb) %>

谢谢。

【问题讨论】:

  • 您的@user 变量设置不正确,请先解决该问题。
  • 不懂 Humm,我的用户控制器中有这个,无论我在哪里使用 @user 它都可以工作.. O.o: pastebin.com/yBMKnWVL
  • @Jmlevick 也许它正在资产目录下查看您是否为paperclip 指定了:path 选项
  • @Viren 是的!看:min.us/mbdUu9YKqA其实图片保存在/public/assets/users/UserID/thumb/image-here.jpg

标签: ruby-on-rails image paperclip avatar


【解决方案1】:

修复了问题!对于

undefined methodavatar' for nil:NilClass`

我在以下代码中从用户中删除了“@”:

<%= image_tag @user.avatar.url(:thumb) %>

那么,对于以下错误:

No route matches [GET] "/public/assets/users/UserID/thumb/userimage.jpg"

我必须从用户模型中的 Url Symbol 中删除“public”,所以它从 这个:

:url  => "/public/assets/users/:id/:style/:basename.:extension"

到这里:

:url  => "/assets/users/:id/:style/:basename.:extension"

现在图像显示(在本地和生产环境中),我可以从我需要的所有视图中使用它们。

希望这对某人有所帮助。

【讨论】:

  • 干杯! “谢谢”大家! :D XD XD XD
猜你喜欢
  • 2020-12-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-03-13
相关资源
最近更新 更多