0

我尝试做从资产中获取头像的方法。我的 User.rb 代码:

def get_avatar(size)

if self.assets.length != 0
  self.assets.each do |asset|
    if asset.avatar
     asset.photo.url(size)
    end
  end
else
  default_avatar(size)
end

结尾

鉴于:

user.get_avatar(:small)

它应该可以工作,但鉴于我只有这个:

 <img alt="Jpeg&quot;, photo file size: 121649, photo updated at: &quot;2013 08 20 07:51:42&quot;, user id: 109, active: false, avatar: true&gt;]" src="/images/[#&lt;Asset id: 176, created_at: &quot;2013-08-20 07:51:43&quot;, updated_at: &quot;2013-08-20 07:51:43&quot;, photo_file_name: &quot;user_2.jpg&quot;, photo_content_type: &quot;image/jpeg&quot;, photo_file_size: 121649, photo_updated_at: &quot;2013-08-20 07:51:42&quot;, user_id: 109, active: false, avatar: true&gt;]">

它不需要 photo.url(size) 而是整个数组索引。

当我做:

Rails.logger.fatal "check_me #{asset.photo.url(size)}"

它只返回照片网址。但它仍然不起作用。

当我做 :

self.assets.first.photo.url(size) 

有用。有什么不同?

4

1 回答 1

0

在您的get_avatar函数中,您循环资产数组,当您获得资产的 url 时,您不会返回它,因此函数会返回数组本身。所以当你得到url时添加return。

def get_avatar(size)

  if self.assets.length != 0
    self.assets.each do |asset|
      if asset.avatar
        return asset.photo.url(size)
      end
    end
  else
    default_avatar(size)
  end
end

希望能帮助到你。

于 2013-08-20T09:04:30.827 回答