From 75a003964496aac4c2ad4a668345654006fdd898 Mon Sep 17 00:00:00 2001 From: yafeilee Date: Mon, 31 Mar 2014 14:45:36 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E9=9A=8F=E6=9C=BA=E5=A4=B1?= =?UTF-8?q?=E8=B4=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/controllers/blogs_controller.rb | 5 ++--- spec/controllers/blogs_controller_spec.rb | 10 ++++++++++ spec/spec_helper.rb | 2 +- 3 files changed, 13 insertions(+), 4 deletions(-) diff --git a/app/controllers/blogs_controller.rb b/app/controllers/blogs_controller.rb index b4f9800..a6fd08c 100644 --- a/app/controllers/blogs_controller.rb +++ b/app/controllers/blogs_controller.rb @@ -13,9 +13,8 @@ class BlogsController < ApplicationController def show @post = Post.find(params[:id]) - created_at = Time.at(@post.created_at.to_f) - @prev = Post.where(:created_at.lt => created_at).desc(:created_at).first - @next = Post.where(:created_at.gt => created_at).asc(:created_at).first + @prev = Post.where(:created_at.lt => @post.created_at).desc(:created_at).where(:id.ne => @post.id).first + @next = Post.where(:created_at.gt => @post.created_at).asc(:created_at).where(:id.ne => @post.id).first @comments = @post.comments end end diff --git a/spec/controllers/blogs_controller_spec.rb b/spec/controllers/blogs_controller_spec.rb index 89357e7..b03d2c6 100644 --- a/spec/controllers/blogs_controller_spec.rb +++ b/spec/controllers/blogs_controller_spec.rb @@ -73,16 +73,26 @@ describe BlogsController do expect(assigns(:prev)).to eq(s_prev) expect(assigns(:next)).to eq(s_next) + # 下界 selected = posts[0] get :show, id: selected.id expect(assigns(:prev)).to be_nil expect(assigns(:next)).to eq(posts[1]) + # 测试上界 selected = posts[2] get :show, id: selected.id expect(assigns(:prev)).to eq(posts[1]) expect(assigns(:next)).to be_nil + # 测试未来时间 + create(:post, created_at: Time.now + 100) + selected = posts[1] + get :show, id: selected.id + expect(assigns(:prev)).to eq(posts[0]) + expect(assigns(:next)).to eq(posts[2]) + + end end end diff --git a/spec/spec_helper.rb b/spec/spec_helper.rb index 0906c7f..05bbcdb 100644 --- a/spec/spec_helper.rb +++ b/spec/spec_helper.rb @@ -15,7 +15,7 @@ RSpec.configure do |config| DatabaseCleaner.start end - config.after do + config.after :each do DatabaseCleaner.clean end