如何从引用的表Rails中获取值

时间:2016-03-26 03:56:19

标签: ruby-on-rails ruby ruby-on-rails-4 associations

我有3个具有以下结构的模型:

应用程序和照片belongs_to列表。列出了很多照片和应用程序。

    class Listing < ActiveRecord::Base
      belongs_to :user
      has_many :photos
      has_many :applications
    end

    class Application < ActiveRecord::Base
      belongs_to :user
      belongs_to :listing
    end

    class Photo < ActiveRecord::Base
       belongs_to :listing
    end

我正在尝试获取与用户应用程序关联的列表的照片。

我通过传递当前用户的所有应用程序来启动控制器:

    @apps = current_user.applications

在视图中,我想显示所有照片:

     <% @apps.each do |app| %>
        <%= image_tag app.listing.photos[0].image.url(:thumb) if app.listing.photos.length > 0 %>
     <% end %>

但是在尝试渲染视图时出现此错误:

  

未定义的方法`照片'为nil:NilClass

我无法使用以下语法访问属于该应用程序列表的照片 - app.listing.photos [0] .image.url?

1 个答案:

答案 0 :(得分:1)

您的某些应用程序是否可能与任何商家信息无关?如果是这样的话:

<% @apps.each do |app| %>
        <%= image_tag app.listing.photos[0].image.url(:thumb) if app.listing.try(:photos).present? %>
     <% end %>