3

完全坚持这一点,可以使用一些帮助!

我让用户输入某些偏好,然后根据这些偏好向每个用户显示一组结果。

用户与这些偏好之间存在 HABTM 关系:

用户.rb

has_many :userpreferences
has_many :preferences, through: :userpreferences

首选项.rb

has_many :userpreferences
has_many :users, through: :userpreferences

用户偏好.rb

belongs_to :user
belongs_to :preference

现在,偏好有一个名为“标签”的属性,它列出了某些细节:即大、小、厚等。

我想根据他们的偏好(即基于他们选择的偏好的标签)显示每个用户项目。

现在我正在尝试:

current_user.preferences.all.each do |p|
        query = p.tags.split(' ')
            @items = Item.where{title.like_any query}

现在,由于某种原因,这只查询标签的第一偏好。

例如,如果偏好 1 的标签是:["black", "leather", "suede"] 偏好 2 的标签是:["brown", "cloth"].......只有第一组正在作为查询传递。

4

1 回答 1

0

想通了 - 对于任何感兴趣的人来说,这与 Squeel 无关!

就像我在查询之前组织循环的方式一样。

解决方案!

query = []
      current_user.preferences.each do |p|

        query << p.tags.split(' ')
        end
            @items = Item.where{title.like_any query}
于 2012-11-14T02:34:53.593 回答