В одном текстовом поле вы можете сделать это только с помощью маски javascript, создавая скрытые поля с каждой частью даты в поле ввода.
Если вам все равно придется использовать javascript, используйте его для выбора даты или доверяйте пользователю вводить дату в указанном формате, оба сценария предоставят вам отформатированную строку, так что вы можете просто проанализировать ее с помощью
# params[:date_as_str] = "2010/07/29 10:00 AM"
object.date = DateTime.strptime(params[:date_as_str], "%Y/%m/%d %H:%M %p")
Вы также можете создать пользовательский помощник для создания этой «маски» javascript в одном текстовом поле.