【发布时间】: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