La respuesta a esta pregunta probablemente esté más relacionada con la carga de html que los rieles.
Cuando quiere cargar un archivo, normalmente hace una entrada con type = "file".
Esto se puede hacer en Rails mediante el file_field_tag helper. Generará una entrada con type = "file" que también puede tener un atributo accept, pero realmente no se puede usar porque no va a tener ningún efecto visible. Este atributo acepta tipos MIME, no extensiones, y la mayoría de los navegadores ni siquiera lo usan.
Lo mejor que puede hacer es probablemente tener un javascript compruebe la extensión del archivo antes de cargarlo (después de seleccionar el archivo del cuadro de diálogo). Obtenga más información al respecto en this question.
El punto es que no puede obligar al sistema operativo a que le muestre solo las extensiones de archivo que desea. Usted puede validar la extensión mediante el uso de JS por ejemplo, antes de cargar o comprobar el contenido del archivo después de la carga, del lado del servidor
Usar Javascript no es una buena idea porque se puede eludir fácilmente. Mejor ir con la validación del lado del servidor, p. como es compatible con Paperclip. –
No recomiendo el uso de JavaScript para la validación, sino solo como una formalidad (me refiero a ... por qué alguien puede cargar una imagen con una extensión incorrecta). Si el usuario carga un archivo, incluso con la extensión requerida, es obvio que debe verificarse en el servidor. pero ese no es el problema aquí. la pregunta era si se puede validar antes de la carga (probablemente para ahorrar tiempo para cargar algo que no es válido. Al menos así es como lo veo) –