Rails is best for
- quick prototypes
- small to medium sized projects (< 1 million users)
- projects that have to iterate a lot
- and many other types of projects!
Unless there are good reasons to do otherwise, please use these libraries:
- RSpec for unit testing
- Cucumber or RSpec for integration testing, using Capybara to remote-control the browser
- Authorization using Pundit
- Skinny Controllers: they should only receive request data, decode it, and call other layers (models, services) to perform business logic
- Skinny Models: they should only represent domain objects (data, relationships between them), validations
- Service Layers: any business logic, especially logic that includes more than one model type, should be extracted into a service layer
Use these tools copiously to make your life as a developer easier!
- Rubocop: scans for Ruby code smells
- Code Climate: scans for code smells
- they also provide command-line tools
- Brakeman: scans for security issues in Rails
- CoffeeLint: lints your CoffeeScript