很確定這些測試工作正常。通過刪除user_rb中的has_many:關係和has_many:reverse_relationships上的dependent::destroy選項來使它們失敗。在關係模型(第11章練習1 Rails教程,第2版)中添加依賴關係的測試:
想分享我的情況下,其他人正在通過Michael Hartl's Rails Tutorial 2nd Edition, Chapter 11 Exercises.
的幾個問題,從這個練習起來沒有(看到這個帖子的底部)。如果任何人都可以提供幫助,那會很棒。
第11章,練習1:
添加試驗依賴性:破壞關係模型(清單11.4和清單11.16)由下列清單10.15中的示例。
這裏是我的測試: 規格/型號/ user_spec.rb
require '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
感謝您的幫助埃裏克! – 2012-04-24 20:50:29