2010-05-03 2 views

Répondre

8

Dites que vous faites ceci:

class UsersController < ApplicationController 

     def create 
     # 
     #your code 
     # 

     respond_to do |format| 
      format.xml {render :xml => xxx} 
      format.json {render :json => xxx} 
      format.html {render xxx} 
     end 
     end 

     def edit 
     # 
     #your code 
     # 

     respond_to do |format| 
      format.xml {render :xml => xxx} 
      format.json {render :json => xxx} 
      format.html {render xxx} 
     end 
     end 

    end 

plutôt faire:

class UsersController < ApplicationController 

     respond_to :xml, :json, :html 

     def create 
     # 
     #your code 
     # 

     respond_with xxx 

     end 

     def edit 
     # 
     #your code 
     # 

     respond_with xxx 

     end 

    end 

et c'est la façon dont vous gardez le DRY code (Ne vous répétez)

+1

mais la plupart du temps, sont d'autres actions. Et si vous ne voulez pas qu'ils répondent à ces autres formats? Vous n'avez tout simplement pas ces fichiers dans l'application? (par exemple pour une action 'new', n'incluez pas new.json ou new.xml)? Y a-t-il des vulnérabilités ou de mauvaises pratiques avec cela? Tant qu'il n'y a pas de fichier à appeler, je suppose qu'il ne devrait pas y avoir de problème, n'est-ce pas? – ahnbizcad

+2

@gwho: Vous êtes libre de limiter l'appel 'respond_to' aux seules actions dont vous avez besoin en utilisant le paramètre': only'. Par exemple: 'respond_to: json,: xml, seulement: [: new,: create]' fonctionne. - OU - si vous ne voulez pas utiliser ': only', alors n'écrivez pas respond_with. Utilisez 'render' – Devaroop

+1

Ah Tahnk vous. Cela semble être un cas d'utilisation très naturel et fréquent. C'est incroyable combien de blogs/ressources ont tendance à passer, donnant seulement les cas les plus simplistes. – ahnbizcad

Questions connexes