사용자 및 프로젝트 리소스가 있으며 project_members라는 리소스를 연결하는 테이블이 있습니다. 지금까지이 라인까지 들어 왔지만 넣어 위치를 모르는다른 리소스에 따라 리소스 제거
75 it 'deletes the project when there are no more users on it' do
76 lambda do
77 project.users.clear
78 end.should change(Project, :count).by(-1)
79 end
... : 모든 사용자가 프로젝트를 떠날 때 나는이 프로젝트는 아래의 스펙처럼 뭔가를 자체를 파괴 기능이하고자하는
@project.destroy if @project.users.empty?
편집 : 여기 내 모델
사용자 모델 (내가 사용 고안)
은 33,210프로젝트 모델
1 class Project < ActiveRecord::Base
2
3 has_many :synapses
4 has_many :users, :through => :synapses, :dependent => :nullify
5 has_many :tasks, :dependent => :destroy
6
7 #use this when you don't have callbacks
8 #has_many :tasks, :dependent => :delete_all
9
10 validates :name, :presence => true,
11 :uniqueness => true
12 validates :description, :presence => true
13
14 attr_accessible :name, :description
15
16 end
시냅스 모델 AKA (프로젝트 명)
1 class Synapse < ActiveRecord::Base
2
3 belongs_to :user,
4 :class_name => 'User',
5 :foreign_key => 'user_id'
6 belongs_to :project,
7 :class_name => 'Project',
8 :foreign_key => 'project_id'
9
10 end
작업 모델
1 class Task < ActiveRecord::Base
2
3 belongs_to :project
4 belongs_to :user
5
6 validates :name, :presence => true
7 validates :description, :presence => true,
8 :length => { :minimum => 10 }
9
10 attr_accessible :name, :description
11
12 end
당신이 방법에 대한 설명을 추가시겠습니까 3 개의 모델이 모두 함께 작동합니까? 사용자와 프로젝트를 연결하기 위해'has_and_belongs_to_many' 또는'has_many, : through'를 사용하고 있습니까? –
방금 추가했습니다. 나는 그들이 최고가 아니며 그들이 향상 될 수 있다고 생각합니다. 마음에 오는 제안은 환영합니다 :) – oFca