Okey googling and stackoverflowing around i found that have to reaload object to get the results i need. Something like this:
describe "order change" do
let(:city){FactoryGirl.create(:city)}
let(:place){FactoryGirl.create(:place, city_id: city.id)}
let(:place_sec){FactoryGirl.create(:place, city_id: city.id)}
let(:place_th){FactoryGirl.create(:place, city_id: city.id)}
context "when editing record" do
it "should go up and change middle records" do
place
place_sec
place_th
expect{
place.update_attributes(item_position: 3)
place_sec.reload
}.to change{place_sec.item_position}.from(2).to(1)
end
end