RESTfulにRailsの中の多型の関連を破壊しますか?
-
19-09-2019 - |
質問
どのように私は、協会自体を破壊し、一人で関連付けられているオブジェクトを残していますか?
具体的には、私はこれらのモデルを持っています:
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
あなたの助けのおかげで、 ランス
解決
のRails 2.3では、あなたは問題のイベントにModelSurveysの配列を渡すことができますaccepts_nested_attributes_for
を持っています。ネストされた属性の宣言によって破壊することができた場合は、event[model_surveys][1][_destroy]=1
を渡すことができるでしょうとの関連付けは削除されます。 href="http://api.rubyonrails.org/classes/ActiveRecord/NestedAttributes/ClassMethods.html" rel="nofollow noreferrer"> APIドキュメントを
他のヒント
リソースドメイン!=モデルドメイン
コントローラのドメインは、モデルのそれと同じではありません。これは、リソースの状態を変化させることにより、複数のモデルを更新するために、完全に罰金です。
他のIDのリストが含まれています。イベントやアンケート調査のいずれかにPUTやPOSTを行うことを意味し、あなたの場合。 1のモデルは、関連を更新します。
にPUTやPOST
一部の人(ただし、ロイフィールディングを)信じていますあなたは、リソースを更新し、再び状態のすべてを提供するために、PUTを使用する必要があることを、他の人は、部分的な状態(ALAのPATCH)とPOSTが十分であることを感じます。