Frage

Wie zerstöre ich den Verein selbst und lassen Sie die Objekte allein zugeordnet ist, während diese RESTful halten?

Insbesondere, ich habe diese Modelle:

class Event < ActiveRecord::Base
  has_many :model_surveys, :as => :surveyable, :dependent => :destroy, :include => :survey
  has_many :surveys, :through => :model_surveys
end

class ModelSurvey < ActiveRecord::Base
  belongs_to :survey
  belongs_to :surveyable, :polymorphic => true
end

class Survey < ActiveRecord::Base
  has_many :model_surveys
end

Das sagt, dass das Ereignis :surveyable (ModelSurvey belongs_to Event) ist. Meine Frage ist, ohne dass ein ModelSurveysController erstellen zu müssen, wie kann ich die ModelSurvey zerstören, während die Event und Survey allein zu lassen?

Etwas mit map.resources :events, :has_many => :model_surveys? Ich bin mir nicht ganz sicher, was in dieser Situation zu tun. Was muss mit den Routen passieren, und das, was in der Steuerung muss geschehen? Ich hoffe, dass die URL wie folgt aussehen könnte:

/events/:title/model_surveys/:id

Danke für Ihre Hilfe, Lance

War es hilfreich?

Lösung

In Rails 2.3 Sie accepts_nested_attributes_for haben, die Sie eine Reihe von ModelSurveys auf das betreffende Ereignis passieren lassen würde. Wenn Sie durch die verschachtelte Attribute Erklärung erlauben zu zerstören, werden Sie in der Lage sein event[model_surveys][1][_destroy]=1 passieren und der Verband entfernt wird. Schauen Sie sich die api docs .

Andere Tipps

Ressourcen Domain! = Modell Domain


Die Domäne der Steuerung ist nicht das gleiche wie die der Modelle. Es ist völlig in Ordnung, mehrere Modelle durch Änderung des Status einer Ressource zu aktualisieren.

In Ihrem Fall, dass Mittel einen PUT oder POST entweder mit dem Ereignis oder der Umfrage zu tun, die eine Liste der IDs für die andere enthält. Das Modell für eine den Verband aktualisieren.

PUT oder POST

Einige Leute (aber nicht Roy Fieldings ) glauben dass Sie die Ressource eine PUT zu aktualisieren und bieten wieder alle des Staates verwendet werden soll, andere glauben, dass ein POST mit dem Teilzustand (ala PATCH) ausreichend ist.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top