完全卡住了,需要一些帮助!
我让用户输入特定的首选项,然后根据这些首选项向每个用户显示一组结果。
用户和这些首选项之间存在HABTM关系:
User.rb
has_many :userpreferences
has_many :preferences, through: :userpreferencesPreferences.rb
has_many :userpreferences
has_many :users, through: :userpreferencesUserpreferences.rb
belongs_to :user
belongs_to :preference现在,preferences有一个名为“tag”的属性,它列出了某些细节:即大、小、厚等。
我想根据用户的偏好(即根据他们选择的偏好的标签)显示每个用户的项目。
现在我正在尝试:
current_user.preferences.all.each do |p|
query = p.tags.split(' ')
@items = Item.where{title.like_any query}现在,由于某些原因,这只查询第一个首选项的标记。
例如,如果首选项1的标签是:“黑色”、“皮革”、“绒面革”,而首选项2的标签是:"brown“、"cloth".......only,则第一个集合将作为查询传递。
发布于 2012-11-14 10:34:54
弄明白了--对于任何感兴趣的人来说,这和Squeel没有任何关系!
在查询之前我是如何组织循环的。
解决方案!
query = []
current_user.preferences.each do |p|
query << p.tags.split(' ')
end
@items = Item.where{title.like_any query}https://stackoverflow.com/questions/13371820
复制相似问题