이 테스트가 올바르게 작동하는지 확실히 확인하십시오. has_many : relationships에서 종속 : : destroy 옵션을 제거하고 user.rb에서 has_many : reverse_relationships를 제거하여 오류가 발생했습니다.종속성 테스트 추가 : 관계 모델 (11 장, 연습 1 레일 튜토리얼, 2 차 Ed)
내가 (이 게시물의 하단 참조) 다른 몇 가지 질문이 연습에서 발생한 Michael Hartl's Rails Tutorial 2nd Edition, Chapter 11 Exercises.
을 통해 노력하고 있습니다 경우 누군가에 무슨 짓을 공유하고 싶었다. 누군가가 도울 수 있다면, 좋을 것입니다.
11 장, 연습 1 :
의존에 대한 테스트를 추가 : 관계 모델에서 파괴는 (11.4 목록 및 11.16 목록) 10.15 목록의 예에 따라. 여기
내 테스트입니다 : 사양/모델/user_spec.rbrequire 'spec_helper'
describe User do
before do
@user = User.new(name: "Example User", email: "[email protected]",
password: "foobar", password_confirmation: "foobar")
end
subject { @user }
[...code omitted...]
describe "relationship associations" do
let(:other_user) { FactoryGirl.create(:user) }
before do
@user.save
@user.follow!(other_user)
other_user.follow!(@user)
end
it "should destroy associated relationships" do
relationships = @user.relationships
@user.destroy
relationships.should be_empty
end
it "should destroy associated reverse relationships" do
reverse_relationships = @user.reverse_relationships
@user.destroy
reverse_relationships.should be_empty
end
end
질문이 연습에서 발생한 몇 :
질문 1 :
내 초기 테스트는 relationships.shou였습니다. ld be_nil reverse_relationships.should be_nil
그러나 사용자가 존재하지 않아도 배열이 여전히 반환되고 있음을 알았습니다. 그래서 사용자가 존재하지 않고 연관 메소드가 호출되면 결과는 여전히 배열입니까? 항상 사실입니까?
질문 2 : 나는 레일 콘솔에서 사용자에 대한 관계와 reverse_relationships을 삭제 놀러 싶어
.
나는이> user = User.first
> user.relationships
# returns a bunch of relationships
> user.relationships.destroy
=> []
> user.relationships
# returns same bunch of relationships
어떻게 실제로 영구적으로 관계를 파괴 할 시도? 콘솔에서 탐색 할 때 알아두면 좋은 것 같습니다.
감사합니다. 나는 여전히 Rails에 꽤 익숙하지 않다.
감사처럼 SMT해야 할 수 있습니다! –