déterminer si la chaîne ne contient que des numéros
-
26-10-2019 - |
Question
J'utilise friendly_id pour mes itinéraires dans mon application rails.
Je veux faire en sorte qu'une page ne peut pas être visité par l'identifiant numérique.
Une page est accessible comme celui-ci - www.myurl.com/myfriendlyidstub
La page ne doit pas être accessible comme celui-ci - www.myurl.com/12345 (id 12345 est de myfriendlyidstub)
Je ne peux pas voir une façon de le faire dans les docs friendly_id.
J'envisage d'ajouter une méthode dans mon contrôleur pour vérifier si le param est numérique
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
Deux questions -
Comment puis-je écrire la méthode 'is_numeric'?
Est-ce une bonne façon de faire les choses? Voyez-vous des pièges?
La solution
J'utiliser un before_filter
avant de le coller dans chaque méthode.
Vous pouvez également configurer un routage segment de contrainte .
Autres conseils
On dirait que vous voulez juste avoir des noms d'utilisateur comme un droit permalien après la racine « /'...
config/route.rb
...
match '/:id' => 'controller#show'
...
Après que je crois que si vous configurez correctement amical il devrait afficher un nom au lieu d'un identifiant.
btw merci pour trouver friendly_id, j'étais sur le point de commencer à chercher quelque chose comme ça pour mon projet.
Laissez-moi savoir si cela aide.