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

Était-ce utile?

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
scroll top