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?

Était-ce utile?

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.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top