Могу ли я выполнить поиск in с помощью searchlogic / metasearch в Rails 3, передавая массив? - PullRequest
0 голосов
/ 26 марта 2011

Я использую гем act_as_network, который позволяет мне получить всех друзей для пользователя через 'User.friends'

Я хочу создать «ленту друзей», показывающую все последние события для всех друзей, выполнив поиск в записях событий, где событие:

  Event  | giver_id | receiver_id | date |

Концептуально Я бы хотел сделать это:

feed = Events.giver_id_or_receiver_id_in(User.friends).date_gt(Date.today.2.weeks.ago)

Это должно дать мне массив всех событий, в которых giver_id или receive_id находится в массиве друзей (User.friends), созданных за последние две недели.

Как я могу это сделать?

1 Ответ

0 голосов
/ 26 марта 2011

IN запросов можно выполнить с помощью: where (: giver_id => array)

Поэтому я думаю, что вы можете сделать что-то вроде:

scope :party_in, lambda {|friends| where(:giver_id => friends) | where(:receiver_id => friend) }

Затем вы можете связать область действия с помощьюОстальная часть вашего запроса:

feed = Events.party_in(User.friends).date_gt(Date.today.2.weeks.ago)
...