Determine si la cadena contiene solo números
-
26-10-2019 - |
Pregunta
Estoy usando Friendly_id para mis rutas en mi aplicación Rails.
Quiero asegurarme de que la identificación numérica no pueda visitar una página.
Se puede acceder a una página como esta - www.myurl.com/myfiendlyidstub
La página no debe ser accesible de esta manera: www.myurl.com/12345 (12345 es la identificación de MyFriendlyIdStub)
No puedo ver una manera de hacer esto en los documentos de Friendly_id.
Así que estoy considerando agregar un método en mi controlador para verificar si el par es numérico
def edit
if params[:id].is_numeric? #I need to know how to write this method
not_found #not_found redirects to a 404
end
#rest of the edit action
end
Dos preguntas -
¿Cómo escribo el método 'is_numeric'?
¿Es esta una buena forma de hacer las cosas? ¿Puedes ver alguna trampa?
Solución
Usaría un before_filter
antes de pegarlo en cada método.
También puede configurar un enrutamiento restricción de segmento.
Otros consejos
Parece que solo quieres tener nombres de usuario como un enlace permanente justo después de la raíz '/' ...
config/route.rb
...
match '/:id' => 'controller#show'
...
Después de eso, creo que si lo configura correctamente, debe mostrar como un nombre en lugar de una identificación.
Por cierto, gracias por encontrar Friendly_id, estaba a punto de comenzar a buscar algo así para mi proyecto.
Avísame si eso ayuda.