Rails向我提出了上述错误,在我的一个模型中指向了这个函数:
def is_failed?
self.daily_post < (Time.now.utc.in_time_zone('Europe/London').beginning_of_day - 1.day)
end
daily_post是我的表格中的一个:datetime方法。起初我认为它可能是一个日期/日期时间问题,但这并没有解决它。
create_table "pledges", force: :cascade do |t|
t.string "name"
t.text "description"
t.integer "amount"
t.integer "user_id"
t.integer "category_id"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.datetime "daily_post"
t.integer "sponsor_id"
t.index ["category_id"], name: "index_pledges_on_category_id", using: :btree
t.index ["user_id"], name: "index_pledges_on_user_id", using: :btree
end
控制器:
def checkin
@pledge = Pledge.find(params[:id])
if @pledge.is_failed?
## pledge is over!
flash[:danger] = "Pledge failed!"
else
@pledge.update(daily_post: Time.now.utc)
flash[:success] = "Checked in!"
end
redirect_to @pledge
end
提前感谢您的时间。
答案 0 :(得分:0)
试试这个:
InterruptedException
答案 1 :(得分:0)
感谢您的回答,我设法解决了问题。
问题在于,当创建模型的新实例时,:daily_post没有被赋予值。所以我把它添加到Pledge模型中:
def first_checkin
if self.daily_post == nil
self.daily_post = self.created_at
end
end
再次感谢!