2012-07-21 1 views
0

J'ai la définition du document mogoid suivant/classe:MongoId et l'affectation de masse

class Exercise 
    include Mongoid::Document 
    field :name, :type => String 
    field :description, :type => String 

    belongs_to :group 

    validates_presence_of :name, :description 
end 

J'ai alors le contrôleur suivant et méthode save:

class ExercisesController < ApplicationController 
    respond_to :json 

    def create 
    @exercise = Exercise.create(params[:exercise]) 
    @exercise.save! 
    respond_with @exercise 
    end 
end 

Cela me semble mal à et ouvert à la masse problèmes d'affectation.

Comment les gens protègent-ils normalement contre cela et utiliseraient-ils des paramètres forts?

+0

Il est une bonne habitude d'utiliser explicitement 'attr_accessible' aux attributs de liste blanche. –

Répondre

0

Vous pouvez utiliser attr_accessible comme protection "standard". Ceci a bien sûr toujours l'inconvénient d'exposer beaucoup de champs à l'interface, alors que vous pourriez n'en exposer que quelques-uns, mais vous devez exposer ces champs dans d'autres contrôleurs.

1

Oui, vous devriez utiliser la gemme strong_parameters, ce sera la protection par défaut masse affectation dans des rails 4