Rails + Squeel查询问题

时间:2012-11-14 01:37:23

标签: sql ruby-on-rails ruby squeel

完全坚持这个并且可以使用一些帮助!

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

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

User.rb

has_many :userpreferences
has_many :preferences, through: :userpreferences

Preferences.rb

has_many :userpreferences
has_many :users, through: :userpreferences

Userpreferences.rb

belongs_to :user
belongs_to :preference

现在,首选项有一个名为“tags”的属性,列出了某些细节:即大,小,厚等。

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

现在我正在尝试:

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”] .......只有第一组作为查询传递。

1 个答案:

答案 0 :(得分:0)

想出来 - 对于任何有兴趣的人,这与Squeel无关!

我在查询之前是如何组织循环的。

<强>解决方案<!/强>

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

        query << p.tags.split(' ')
        end
            @items = Item.where{title.like_any query}