세 가지 모델이 있습니다 : 사용자, 구독 및 채널.특정 레코드를 수정 또는 삭제하지 못하도록 보호하는 가장 좋은 방법은 무엇입니까?
사용자 :
has_many :channels, :through => :subscriptions
구독 :
belongs_to :user
belongs_to :channel
채널
belongs_to :user
has_many :users, :through => :subscriptions
나는이 자동으로 일부 구독 테이블에 채널의 생성 사용자를 추가하는 after_create
방법 기타 필요한 속성이 설정됩니다. 채널 사용자에게 해당하는 구독 기록을 삭제하거나 수정하지 못하도록하는 방법과 장소를 어디서 추가해야합니까?
내 모델은 다른 컨트롤러에서 몇 가지 다른 작업으로 업데이트 할 수 있으므로 모델 레이어에 내 모델이 필요하지만 콜백을 사용해야하는지 잘 모르겠습니다. 유효성 확인을해야하나요? 아니면 before_destroy
, after_destroy
또는 무엇에 연결해야합니까? 당신이 특정 기준을 충족하지 않는 한 Subscription
기록의 삭제 또는 수정을 방지해야하는 경우
레일 3.1.3
사용자가 사용자 이름을 통해 중첩 된 양식에 추가되기 때문에 설정하기가 조금 더 어려웠습니다. 그러나 관리자 속성을 true로 설정하여 채널 작성자의 구독이 존재하도록합니다. 여기 내 모델입니다. https://gist.github.com/1745675 – Preacher