Rails is expecting a truthy value: false or nil if the box shouldn’t be checked, or anything else to make the box checked. It isn’t expecting an html attribute string. You’re passing a string which always counts as true, since it is neither falsde nor nil. If you use @selected_ratings.include?(rating) instead that should do the trick.