Rails Paperclip结果数组索引

时间:2013-08-20 08:04:56

标签: ruby-on-rails paperclip

我尝试做一些从资产中获取头像的方法。我的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(大小)而是整数组索引。

当我这样做时:

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

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

当我这样做时:

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

它有效。有什么区别?

1 个答案:

答案 0 :(得分:0)

get_avatar函数中循环assets数组,当你获得资源的url时,你不返回它,所以函数返回数组本身。所以当你拿到网址时加上回报。

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

希望它有所帮助。