Bastante seguro de que estas pruebas funcionan correctamente. Conseguí que fallaran al eliminar el dependiente:: opciones de destrucción en has_many: relaciones y has_many: reverse_relationships en user.rb.Agregar pruebas para dependiente: destruir en el modelo de relación (Capítulo 11, Ejercicio 1, Tutorial de rieles, 2da edición)
quería compartir lo que he hecho en cualquier caso más está trabajando a través de Michael Hartl's Rails Tutorial 2nd Edition, Chapter 11 Exercises.
Algunas preguntas surgieron de este ejercicio (véase la parte inferior de este post). Si alguien pudiera ayudar, sería genial.
Capítulo 11, Ejercicio 1:
añadir pruebas para dependientes: destruir en el modelo de relación (Listado 11,4 y el listado 11.16), siguiendo el ejemplo del Listado 10.15.
Aquí está mi prueba: especificación/modelos/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
un par de preguntas surgieron de este ejercicio:
Pregunta 1:
Mi las pruebas iniciales fueron relationships.shou ld be_nil reverse_relationships.should be_nil
Pero, se dio cuenta de que todavía se estaba devolviendo una matriz, a pesar de que no existía ningún usuario. Entonces, cuando un usuario no existe y se llama a un método de asociación, ¿el resultado sigue siendo una matriz? Es esto siempre cierto?
Pregunta 2:
quería jugar un poco con la supresión de las relaciones y reverse_relationships para un usuario en la consola de rieles.
yo probamos este
> user = User.first
> user.relationships
# returns a bunch of relationships
> user.relationships.destroy
=> []
> user.relationships
# returns same bunch of relationships
¿Cómo realmente destruir las relaciones de forma permanente? Parece algo bueno saber al explorar en la consola.
Gracias! Todavía soy bastante nuevo en Rails
Gracias por su ayuda Eric! –