0

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

undefined methodnil:NilClass 的头像'

为什么会这样?

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

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

我在 Localhost... 是因为这个吗?(我猜是因为“userimage”实际上保存在应用程序的该路径上)

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

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

谢谢你。

4

1 回答 1

2

修复了问题!为了

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"

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

希望这可以帮助某人。

于 2012-06-22T05:33:48.377 回答