Я использую драгоценный камень amistad для управления дружбой в моем приложении.Настройка amistad: добавление временных меток
Я хотел бы отслеживать, когда возникают связи, чтобы отображать некоторые уведомления.
Во-первых, я хотел бы добавить временную метку к модели отношений, чтобы иметь возможность делать запросы, такие как: retrieve all Friendships where receiving user is current user, and where updated_at is greater than the last time the current_user checked his notifications
. Считая эти результаты, я могу сказать: 3 входящих запроса на контакт и их отображение.
Так что я сделал миграцию:
class AddUpdatedAtToFriendship < ActiveRecord::Migration
def change
change_table :friendships do |t|
t.timestamps
end
end
end
rake db:migrate
мигрирует правильно, но тогда updated_at
не автоматически, когда создаются записи или обновляются с помощью камня (например: @user.invite another_user
).
FYI, метод пригласите является следующее: (code here)
def invite(user)
return false if user == self || find_any_friendship_with(user)
Amistad.friendship_class.new{ |f| f.friendable = self ; f.friend = user }.save
end
Я не понимаю, почему активные записи авто метки времени не работает в этом случае.
Примечание: Если я вручную создать дружбу в консоли, метки времени, устанавливаются:
$> rails c
test = Amistad::Friendships::UserFriendship.new
test.friend_id = 1
test.friendable_id = 2
test.save
test.updated_at
=> Thu, 23 May 2013 17:59:17 CEST +02:00
Даже если я могу это сделать в консоли установлены временные метки: Так должно быть проблемой контекста. ..
$> rails c
test2 = Amistad.friendship_class.new{ |f| f.friendable = User.find_by_id(5) ; f.friend = User.find_by_id(6) }.save
test2.updated_at
=> Thu, 23 May 2013 18:02:05 CEST +02:00
Но все же, когда я называю @user.invite another_user
в приложении, он не обновляет временные метки ...
Во-вторых, в консоли рельсы, если я типа Friendships.all
, Friendship.all
, Amistad::Friendships.all
... Я получаю:
NameError: uninitialized constant Friendship
Как я могу решить эти 2 проблемы. Какие-либо предложения ?