查询一张照片被收录到相册的次数
Making a query of how many times a photo has been included to an album
我坚持这个。我有 2 个模型,photo
和 album
。
这是一个多对多的关系,中间 table 称为 photo_listings
,它有 photo_id
和 album_id
列
问题是,我想在我的观点中有一个计数器,关于 一张照片被添加到相册(所有相册,而不是特定相册)的次数。
为此,我想我需要创建一个 method/scope album_count
,这样我就可以 photo.album_count
在我看来。
在该方法中,我正在做:
def album_count
Photo_listing.includes(:photo_id).count
end
我不知道如何生成该查询。我阅读了 Active Record 文档,但也找不到。有任何想法吗?提前致谢。
如果photo
和album
是多对多的关系,那么就意味着从album
你可以使用
photo.albums
访问关系。因此
def albums_count
photo.albums.count
end
你不需要引用中间体 table/model,除非你必须这样做。
如果你想统计一张照片被添加到相册的所有次数,那么(假设你使用了has_many :through
)
class Photo
def total_albums_count
PhotoListing.where(photo_id: id).count
end
end
我坚持这个。我有 2 个模型,photo
和 album
。
这是一个多对多的关系,中间 table 称为 photo_listings
,它有 photo_id
和 album_id
列
问题是,我想在我的观点中有一个计数器,关于 一张照片被添加到相册(所有相册,而不是特定相册)的次数。
为此,我想我需要创建一个 method/scope album_count
,这样我就可以 photo.album_count
在我看来。
在该方法中,我正在做:
def album_count
Photo_listing.includes(:photo_id).count
end
我不知道如何生成该查询。我阅读了 Active Record 文档,但也找不到。有任何想法吗?提前致谢。
如果photo
和album
是多对多的关系,那么就意味着从album
你可以使用
photo.albums
访问关系。因此
def albums_count
photo.albums.count
end
你不需要引用中间体 table/model,除非你必须这样做。
如果你想统计一张照片被添加到相册的所有次数,那么(假设你使用了has_many :through
)
class Photo
def total_albums_count
PhotoListing.where(photo_id: id).count
end
end