REST的破坏Rails的多态关联?
-
19-09-2019 - |
题
我如何摧毁协会本身并留下被单独关联的对象,同时保持这个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
这是说该事件是:surveyable
(ModelSurvey belongs_to Event
)。我的问题是,而无需创建一个ModelSurveysController
,我怎么破坏ModelSurvey
,同时使Event
和Survey
人吗?
一些与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就足够了。
不隶属于 StackOverflow