Vérification d'un attribut est vrai avant d'exécuter une action CRUD
-
26-09-2019 - |
Question
Avant l'un de mes contrôleurs article actions crud peut fonctionner (hors index), je veux vous assurer que champ actif de l'article est vrai. Je pensais à faire cela dans un before_filter, mais à ce moment-là @article n'a pas été défini, des idées s'il vous plaît?
Merci
La solution
Vous pouvez définir l'article dans une méthode d'aide et de supprimer une duplication de code pendant que vous y êtes.
class .. < ApplicationController
helper_method :current_article
def index
# your code etc..
end
private
def current_article
@article ||= Article.find(params[:id], :conditions => { :active => true }) ||
raise(ActiveRecord::RecordNotFound)
end
end
vous pouvez maintenant appeler Fondamentalement current_article
dans votre spectacle, édition (etc) actions et points de vue au lieu de @article
.
Autres conseils
Il vous suffit de faire 2 before_filter.
1 avec la charge de l'article et la seconde pour vérifier si existe champ
before_filter :load_article, :only => [:show, :edit, :update]
before_filter :has_field, :only => [:show, :edit, :update]
...
private
def load_article
@article = Article.find(params[:id])
end
def has_field
unless @article.active
redirect_to root_url
end
end
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow