найти все по идентификатору, но исключить определенные идентификаторы

Я просматриваю видео Public Activity Gem Railscast. (http://railscasts.com/episodes/406-public-activity)

Все работает нормально, но я хотел бы найти все выполненные действия, кроме тех, которые содержат id_recipient_id, принадлежащий Current_User

У меня есть работающий метод (действия), который позволяет мне найти все действия, выполняемые всеми пользователями.

И этот второй метод (уведомления), чтобы найти все действия, где Receive_id равен Current_User

КОНТРОЛЛЕР

**(finds all activities)**
def activities
  @title = "Activities"
  @activities = PublicActivity::Activity.order("created_at desc").where(owner_id: current_user.followed_users.all, owner_type: "User") 
  @user = User.find_by_username(params[:id])
  render 'activities'
end

**(find all notifications where recipient_id is Current_User)**
def notifications
  @title = "Notifications"
  @activities = PublicActivity::Activity.order("created_at desc").where(recipient_id: current_user, recipient_type: "User") 
  @user = User.find_by_username(params[:id])
  render 'notifications'
end

Есть ли способ объединить их, чтобы первый метод (действия) находил все действия, ЗА ИСКЛЮЧЕНИЕМ тех, которые были найдены в методе 2 (уведомления), где получатель_ид равен текущему_пользователю

Я знаю, что это довольно легко сделать.... я просто не могу понять. Пожалуйста, помогите.... Новичок в Rails: D

Моя текущая БД выглядит/хранит все так

#<PublicActivity::Activity id: 108, trackable_id: 133, trackable_type: "Relationship",
owner_id: 1, owner_type: "User", key: "relationship.create", parameters: {}, 
recipient_id: 1, recipient_type: User, created_at: "2013-06-16 07:37:28", 
updated_at: "2013-06-16 07:37:28">

person Serge Pedroza    schedule 16.06.2013    source источник


Ответы (1)


Вам нужно будет использовать собственный SQL-запрос, но что-то вроде этого должно решить вашу проблему:

@activities = PublicActivity::Activity.where("recipient_id != ?", current_user.id).where(recipient_type: "User", owner_id: current_user.followed_users.all, owner_type: "User")
person jokklan    schedule 16.06.2013