用于获取每个列表的第一张图像的ruby逻辑

时间:2016-02-16 11:20:05

标签: ruby-on-rails ruby

我有listing model。每个商家信息都包含many张图片。因此,在我的index页面中,我想显示所有商家信息以及每个商家信息的第一张图片。因此,在控制器中,我首先获取包含:name:描述,etc等所有字段的所有商家信息。现在对于图像部分是卡住的地方。如何使用custom_url代码在每个房间中使用image url正确添加:ruby字段?

  

(注意:我在前端使用角度,所以这只适用于json和   不希望在数据库中为第一个图像添加单独的字段)

所以这是控制器代码

 def search
    @listings = Listing.all


      custom_url = listing.photos[0].image_url(:medium)

    respond_to do |format|
      format.html
      format.json { render json: {listings: @listings} }
    end
  end

1 个答案:

答案 0 :(得分:2)

在Listing模型中添加一个获取图片网址的方法并将其命名为custom_url

<强> Listing.rb

def custom_url
    photos.first.image_url(:medium)
end

然后在render_json中添加方法custom_url

def search
  @listings = Listing.all
  listings_json = @listings.as_json({methods: :custom_url}

  respond_to do |format|
    format.json { render json: {listings: listings_json }
  end
end