获取搜索表单的喜欢数量

时间:2016-10-03 07:49:14

标签: search ruby-on-rails-5

我正在努力解决标题中提到的问题,这是我的情况: 我有一个名为Picture witch has_many Relationships的数据库。那些关系可以有值1(像)或-1(不喜欢),所以像Picture.find(1).relationships.where(value:1).count我可以获得具有id的图片的喜欢数量例如,1。

我正在使用基于模型的简单搜索来查找特定图片。不幸的是,如果我想找到X号或更多喜欢的图片,我不明白这条线的外观。

class Search < ApplicationRecord

    def search_albums
        pics = Picture.all

        pics = pics.where("title LIKE ?", "%#{name}%") if name.present?
        pics = pics.joins(:tags).where("name LIKE ?", tag) if tag.present?
        pics = pics. ... if min_likes.present?

        return pics
    end

1 个答案:

答案 0 :(得分:0)

好吧,可能不是最好的解决方案,但它有效:

    if min_likes.present?
        stack=[]
        pics.each do |pic|
            stack.push(pic) if (pic.relationships.where(value: 1).count >= min_likes)
        end
        pics = stack
    end