【问题标题】:Rails Paperclip image URL using Image ID?使用图像 ID 的 Rails Paperclip 图像 URL?
【发布时间】:2012-04-21 23:51:59
【问题描述】:

好吧,我又被困住了。而这一次,也许是因为我使用的工具并非专为它设计的。

我将 Paperclip 用于图像附件,并将这些图像保存为模型的实例,您猜对了,Image。图片属于用户。用户有很多图像。

但是,我想将用户的一张图片指定为他们的默认图片。所以,我的大脑告诉我,我需要在 User 表中添加一个字段来保存我想要成为默认图像的 ID。

图像使用 has_attached_file。我不希望用户拥有自己的附加文件,我只希望用户模型能够引用具有可用 url 辅助方法的图像的特定实例。

当我尝试使用 ID 获取此图像的 URL 时,问题就出现了。要么我试图做的事情是不可能使用回形针,要么我没有正确设置我的关联。

基本上,我希望能够使用用户模型的实例在视图中访问该图像。所以:

<%= image_tag @user.image.url %>

但这不起作用。我明白为什么它不起作用,但我不明白如何制作

@user.image

成为一个神奇的回形针对象的实例,该对象附加了用于检索 url 的方法。

基本上,如果我知道如何使用图像 ID 获取回形针图像的 URL,我会很高兴。有什么线索吗?

【问题讨论】:

    标签: ruby-on-rails paperclip


    【解决方案1】:

    我想您可以从图像对象中获取回形针图像 URL?

    如果是这样,请将其添加到您的用户模型中:

    def image_url
      Image.find( self.image ).url
    end
    

    当您现在在用户模型“图像”列中保存了默认图片的 ID,并且在图像模型的“url”列中保存了图像的 url,您应该可以这样做:

    @user.image_url
    

    这应该返回你的“默认”图片的网址

    【讨论】:

    • 当我读到你的帖子时,我就像“天哪,这是天才!!!”.. 不幸的是,你无法获得这样的回形针图像 URL。尝试使用@user.image_url 告诉我图像对象没有“url”方法
    • 如何从常规图像对象中获取回形针 url?
    • 考虑到用户有很多图像。如果我在用户的图像上循环,我可以获得网址。 @user.images.each 做 |i| ...然后 i.url 效果很好。不知道有什么区别
    • 嘿。你猜怎么了。我是个白痴……我道歉。它不起作用的原因是实际图像存储在图像对象的“图像”属性中。所以: Image.find(self.default_image_id).image.url 就是答案。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-02-24
    • 2015-03-10
    • 2016-07-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多