Cucumber describes what happens from the user's perspective.
Cucumber is good for making sure all these sort of high-level features and functionality are covered. But it's not a good tool for testing lower-level code. That's where RSpec comes in.
Cucumber for higher-level tests describing broad functionality as viewed from the user's perspective
RSpec for lower-level tests describing details for how your classes, methods, models, controller, etc should actually work.