def index
@item = Item.find(params[:item])
unless @item.users.include?(current_user)
redirect_to user_path(current_user)
return
end
/typo:code
with a spec that includes
before(:each) do
@user = mock_model(User)
login @user
end
/typo:code
and a spec helper of
def login(user)
controller.should_receive(:current_user).and_return(user)
end
/typo:code
gives a double-receipt error for the method current_user. the value of the method call current_user is static. we use this to justify a local variable to hold the value. this reduces the number of method calls and protects against certain errors when the current_user might change accidentally half way through the method.
the method becomes
def index
user = current_user
@item = Item.find(params[:item])
unless @item.users.include?(user)
redirect_to user_path(user)
return
end
/typo:code