Hi!
I've noticed that
validates :first_name, length: { minimum: 2, maximum: 50 }
translates to
<input maxlength="50" minlength="2" size="50" type="text">
To be 100% accurate with actual model validation, it should translate to
<input required="required" maxlength="50" minlength="2" size="50" type="text">
If you agree, I could prepare a pull request with that, are you interested?