Je souhaite convertir le titre d'une page en URL conviviale et le stocker dans la base de données en tant que permalien. Mon problème est que je ne peux pas utiliser la méthode parameterize
. Ça ne fonctionne pas. D'autres inflexions fonctionnent comme upcase
ou downcase
mais parameterize
ne fonctionne pas. Y a-t-il un cas particulier pour parameterize
?Comment utiliser paramétrer dans Rails?
Ceci est mon code:
Controller:
def create
params[:page][:permalink] = params[:page][:title].dup
@page = Page.new(params[:page])
end
Modèle:
class Page < ActiveRecord::Base
before_save :makeitpermalink
before_update :makeitpermalink
private
def makeitpermalink
permalink.parameterize!
end
end
Bienvenue sur SO, heureux de voir les amateurs de rails ici. La prochaine fois, essayez d'utiliser le formatage de code et donnez un meilleur titre à votre question pour obtenir des réponses. Je viens d'éditer votre message, mais juste pour que vous sachiez. A propos de la question je ne sais pas. Pourriez-vous fournir le message d'erreur ou le résultat que vous obtenez? – marcgg
Dans le modèle, vous devez également avoir le callback before_save; before_update est inutile. – amaseuk
btw si vous avez "before_save", "before_update" est redondant – choonkeat