0

ここには2つの問題があります。

私はユーザーの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

それは完璧に機能します:

ユーザーが私を承認した場合、last_published(type 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フィールドは変更されません(フィールドのデフォルト値を3月1日に設定します)

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

何か案は?

4

1 に答える 1

0

属性を更新するときは、変数 @user をリロードする必要があります。

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

Cucumber は @user に格納された値を評価していましたが、メソッドの実行後に最新ではありませんでした。

于 2013-03-07T17:31:43.277 に答える