Ruby on rails RESTfully销毁Rails中的多态关联?

Ruby on rails RESTfully销毁Rails中的多态关联?,ruby-on-rails,rest,polymorphic-associations,destroy,Ruby On Rails,Rest,Polymorphic Associations,Destroy,我如何销毁关联本身并让关联的对象单独存在,同时保持这种RESTful状态 具体而言,我有以下模型: class Event < ActiveRecord::Base has_many :model_surveys, :as => :surveyable, :dependent => :destroy, :include => :survey has_many :surveys, :through => :model_surveys end class Mo

我如何销毁关联本身并让关联的对象单独存在,同时保持这种RESTful状态

具体而言,我有以下模型:

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
class事件:surveyable,:dependent=>:destroy,:include=>:survey
有很多:调查,:通过=>:模型调查
结束
类ModelSurveytrue
结束
班级调查
也就是说,事件是
:可调查的
模型调查属于事件
)。我的问题是,在不必创建
modelserveycontroller
的情况下,如何销毁
ModelSurvey
,而将
事件
调查
单独保留

map.resources:events,:has\u many=>:model\u surveys
?我不太清楚在这种情况下该怎么办。路线需要发生什么,控制器需要发生什么?我希望url可以像这样:

/events/:title/model_surveys/:id

谢谢你的帮助,
Lance

在Rails 2.3中,您有
接受
的_嵌套的_属性_,这将允许您将一组模型调查传递给相关事件。如果通过嵌套属性声明允许销毁,则可以传递
事件[model_surveys][1][[u destroy]=1
,并且关联将被删除。查看。

资源域!=模型域
控制器的域与模型的域不同。通过更改资源的状态来更新多个模型是非常好的

在您的情况下,这意味着对事件或包含另一个ID列表的调查执行PUT或POST。其中一个的模型将更新关联。

放置或张贴

有些人(但不是)认为应该使用PUT来更新资源并再次提供所有状态,其他人则认为带有部分状态(ala补丁)的POST就足够了