Salut à tous,
je suis en train de créer une application avec Rails 4.2. J’ai un souci d’unicité. Je voudrais vérifier qu’une adresse email n’est pas en double dans la base de données et voici comment je fais :
app/models/users.rb
Salut à tous,
je suis en train de créer une application avec Rails 4.2. J’ai un souci d’unicité. Je voudrais vérifier qu’une adresse email n’est pas en double dans la base de données et voici comment je fais :
app/models/users.rb
Quel est le message d’erreur? Si c’est une exception ActiveRecord::RecordInvalid c’est parce que le deuxième appel a User.create! va lever une exception, parce que l’utilisateur n’est pas unique. Pour pouvoir ensuire tested user.should_not be_valid, il faudrait plutôt utiliser User.create(@attr) (Sans le !)
Fred
Le message d’erreur c’est ça : $ rspec spec/ …FF…
Failures:
User devrait rejeter les emails doubles Failure/Error: user_duplicate.should_not be_valid expected #<User id: 2, nom: nil, email: nil, created_at: “2015-03-18 07:08:44”, updated_at: “2015-03-18 07:08:44”> not to be valid
User devrait rejeter les emails doubles insensible à la casse Failure/Error: user.should_not be_valid expected #<User id: 2, nom: nil, email: nil, created_at: “2015-03-18 07:08:44”, updated_at: “2015-03-18 07:08:44”> not to be valid
Deprecation Warnings:
Using should_not
from rspec-expectations’ old :should
syntax without explicitly enabling the syntax is deprecated. Use the new :expect
syntax or explicitly enable :should
with config.expect_with(:rspec) { |c| c.syntax = :should }
instead. Called from /media/jeremy/5256-8C40/sample_app/spec/models/user_spec.rb:25:in `block (2 levels) in <top (required)>'.
If you need more of the backtrace for any of these deprecations to
identify where to make the necessary changes, you can configure
config.raise_errors_for_deprecations!
, and it will turn the
deprecation warnings into errors, giving you the full backtrace.
1 deprecation warning total
Finished in 0.16859 seconds (files took 1.08 seconds to load) 24 examples, 2 failures
Failed examples:
rspec ./spec/models/user_spec.rb:55 # User devrait rejeter les emails doubles rspec ./spec/models/user_spec.rb:61 # User devrait rejeter les emails doubles insensible à la casse
``
D’ailleurs j’ai un warning dont je ne connais pas la cause mais ça je verrais plus tard au pire. J’ai enlevé le ! du deuxième create, ça change rien, j’ai enlevé des deux create rien non plus et j’ai inversé les deux ça fait toujours rien donc je sais pas d’où ça viens…
J’ai du nouveau ! Apparement c’est le attr_accessor qui mettait la pagaille ! Merci à tous !