Редактировать: Вот что происходит, когда я набираю код из памяти.Для ActiveRecord self.id
возвращает первичный ключ текущей записи, который является целым числом, если вы намеренно не установите его в другое значение.Для Mongoid self.id
возвращает вместо BSON::ObjectId
.Вам нужен строковый ключ для Redis, поэтому вы должны вызвать to_s
для объекта BSON следующим образом: self.id.to_s
.
Добавление способности к @event.likes
в ваших представлениях тривиально.Добавьте метод likes
в вашу модель следующим образом:
def Event
def likes
$redis.scard("likes:#{self.id.to_s}") # return is not necessary
end
end
Если вы хотите использовать mongoid, чтобы проверить, понравилось ли текущему пользователю событие, не повторяя его по каждому событию, вам нужно будет сохранить лайки.в mongodb, а не в redis.