我如何摧毁协会本身并留下被单独关联的对象,同时保持这个REST风格的?

具体而言,我有这些模型:

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

这是说该事件是:surveyableModelSurvey belongs_to Event)。我的问题是,而无需创建一个ModelSurveysController,我怎么破坏ModelSurvey,同时使EventSurvey人吗?

一些与map.resources :events, :has_many => :model_surveys?我不太知道该怎么在这种情况下做的。有什么需要与路线发生,哪些需要在控制器中发生的呢?我希望的URL可能看起来是这样的:

/events/:title/model_surveys/:id

感谢您的帮助, 兰斯

有帮助吗?

解决方案

在滑轨2.3你有accepts_nested_attributes_for这将让你通过ModelSurveys的阵列所讨论的事件。如果允许通过嵌套属性的声明破坏,你就可以通过event[model_surveys][1][_destroy]=1和协会将被删除。查看 API文档

其他提示

资源域!=模型域

,点击 控制器的域名是不一样的车型。这是完全正常的,通过改变资源的状态更新多个模型。

在您的情况,它表示做一个PUT或POST要么事件或含有IDS为其他的列表调查。一个模型将更新的关联。 结果

<强> PUT或POST 结果

有人(但不是罗伊菲尔丁)相信你应该使用PUT再次更新的资源,并提供所有的状态,有人觉得与部分国家(ALA补丁)一个POST就足够了。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top