2013-03-03 1 views
0

Есть две проблемы:Моя испытательная база данных уходит два дня в прошлое и не заботится о спасении

У меня есть этот код, чтобы публиковать на facebook стены пользователей:

def publish_on_facebook 
    if user.last_published < 1.day.ago 
     @graph = Koala::Facebook::API.new(user.service.token) 
     begin 
      @graph.put_wall_post("some post") 
      user.last_published = Time.now 
      user.save 
     rescue 
      user.last_published = 1.week.from_now 
      user.save 
     end 
    end 
end 

Он работает отлично:

Если пользователь разрешил мне, он публикует и обновляет последнее поле (тип datetime) до настоящего времени.

Если пользователь не разрешил мне публиковать материалы в своей стене, он обновляет поле last_published до 1 недели.

Теперь, когда я бегу через мой огурца, тестирование, он не работает:

Когда пользователь уполномочил меня, то last_published обновления поля до 1 минуты с этого времени, но 2 дня назад

expected: > Sun, 03 Mar 2013 16:12:44 UTC +00:00 
got: Fri, 01 Mar 2013 16:13:43 UTC +00:00 

Когда пользователь не авторизован меня, никаких изменений на last_published поле (я не установить значение по умолчанию поля маршировать первого)

expected: > Sat, 09 Mar 2013 16:13:47 UTC +00:00 
got: Fri, 01 Mar 2013 15:01:11 UTC +00:00 

Любые идеи?

ответ

0

При обновлении атрибутов, переменная @user должен быть перезагружена:

@user.update_attributes(attribute: value) 
@user = User.find(@user) 

Огурцы оценивала значение, хранящееся в @user, которые не были до настоящего времени после того, как метод побежал.

+1

Это не так. #update_attributes обновляет экземпляр AR. Если @user является экземпляром в мире огурца, вам необходимо перезагрузить его после того, как приложение изменит его. – joshuanapoli