Je souhaite ajouter des URL personnalisées à un modèle dans mon application. Idéalement, je voudrais qu'il se rabat sur ID si un utilisateur n'a pas de nom d'utilisateur. Voici la solution actuelle que j'ai construite, mais cela ne fonctionne pas.URL de vanité pour le modèle
User.rb
def to_param
username || id
end
Contrôleur utilisateur
@user = if params.key?(:username)
User.find_by_name(params[:username])
else
User.find(params[:id])
end
Routes
match "/:username" => "users#show", via: :get
Utilisez bijou friendly_id: https://github.com/norman/friendly_id – BroiSatse
'méthodes find_by_x' ont été dépréciée depuis un certain temps , vous devriez utiliser 'where (nom d'utilisateur: params [: nom d'utilisateur]). first' – meagar
Peut-être utile si vous avez expliqué ce qui ne fonctionne pas exactement. –