문제

협회 자체를 파괴하고 물체를 단독으로 연결하면서 어떻게 편안하게 유지합니까?

구체적으로 다음 모델이 있습니다.

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). 내 질문은 a를 만들 필요없이입니다 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 문서.

다른 팁

리소스 도메인! = 모델 도메인


컨트롤러의 도메인은 모델의 도메인과 동일하지 않습니다. 리소스의 상태를 변경하여 여러 모델을 업데이트하는 것은 완벽합니다.

귀하의 경우, 이벤트 또는 다른 사람에 대한 ID 목록이 포함 된 이벤트 또는 설문 조사에 풋 또는 게시물을 수행하는 것을 의미합니다. 하나의 모델은 협회를 업데이트합니다.

배치 또는 게시

어떤 사람들 (그러나 그렇지 않습니다 로이 필딩) 풋을 사용하여 리소스를 업데이트하고 모든 주를 다시 제공해야한다고 믿습니다. 다른 상태는 부분 상태 (ALA 패치)가있는 게시물만으로도 충분하다고 생각합니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top