- Making everything go through a "controller" instead of well designed clients and APIs. Mixing rendering, redirection, ajax handling as well as page serving as well as business logic all into a "controller" is painful. ("Models" and the spaghetti design patterns they come with are even worse)
- PHP style templates that trigger database queries inline, making them difficult and eventually impossible to optimize
- Scattering view code across random places instead of writing view code with its corresponding view logic in the same file/component
- Wiring up functionality to templates by targeting selectors
- Manually setting innerHTML for dynamic functionality
- Dealing with rails "turbo" anything, which is not useful in a real world application, and dangerous (we've had production outages because of trying to use turbolinks)
- Not being able to customize behavior because you're locked into Rails design limitations