Tengo una aplicación estándar de Rails 3.2 con un comportamiento extraño.Spork causando un error de método indefinido en mi aplicación Rails?
Puedo ejecutar rspec spec/
sin ejecutar spork y todas las pruebas pasan sin problemas.
Luego enciendo spork y vuelvo a ejecutar las especificaciones. Esta vez, todas las pruebas que toca uno de mis programas de correo fallará con el mismo error:
Failures:
1) InvitationsController GET accept with non-matching token should redirect to the root path
Failure/Error: let!(:invitation) { Factory :invitation }
NoMethodError:
undefined method `invite' for InvitationMailer:Class
# ./app/models/invitation.rb:29:in `send_email'
# ./spec/controllers/invitations_controller_spec.rb:5:in `block (3 levels) in <top (required)>'
Entonces, sólo para hacer que todo sea un poco más raro, que puede funcionar directorios o características individuales, con o sin spork en marcha, y todo pasa sin problema por ejemplo, rspec spec/mailers
o rspec spec/models
.
Aquí es el método que estoy siendo dicho no está definido:
class InvitationMailer < ActionMailer::Base
default from: APP_CONFIG[:default_from]
def invite(invitation)
@invitation = invitation
mail(to: @invitation.recipient_email, subject: "the subject")
end
end
¿Alguna idea de lo que podría estar sucediendo?
@duckufuzz, ¿encontró la solución? –
No. Estoy planeando sacar Spork de la aplicación pronto. Me encanta spork cuando funciona, pero me parece que no puedo confiar en él la mayor parte del tiempo. –
Sin el código de fábrica y de prueba, es difícil responder a esta pregunta. – Wes