0

Railsは初めてで、お時間をいただきありがとうございます。だから私は次のテストを実行しています:

   test "does not validate without" do
@user.update_attributes(email: "example@example.com", password: "12345699", password_confirmation: "12345699")
@user.confirm!
assert(!@user.save, "this should not be valid since it lacks a zipcode")
@user.update_attributes(password: "12345678", password_confirmation: "12345678")
assert(!@user.save, "this should be invalid straight up")
@user.update_attributes(sex: "male")
@user.update_attributes(zipcode: "33333")
@user.save
puts @user.errors.to_yaml
assert(@user.save, "this should be valid straight up")
end

そして、私はこの出力を取得します:

  Run options: 

  # Running tests:

  --- !ruby/object:ActiveModel::Errors
  base: !ruby/object:User
 attributes:
id: 980190962
username: 
email: ''
encrypted_password: !binary |-
  JDJhJDA0JEFHc0RaOG9zWDlGcWguNGtTN0tuTi5SeEtGNGpqcVR3bU4uVFdD
  VzZ6eWxMVGxFbXJzUmhh
reset_password_token: 
reset_password_sent_at: 
remember_created_at: 
sign_in_count: 0
current_sign_in_at: 
last_sign_in_at: 
current_sign_in_ip: 
last_sign_in_ip: 
created_at: 2013-02-21 19:42:48.000000000 Z
updated_at: 2013-02-21 19:42:48.985150392 Z
first_name: 
last_name: 
zipcode: 33333
sex: male
provider: 
uid: 
avatar_image: 
confirmation_token: GjCHVfywWX2hqUHTqBgN
confirmed_at: 2013-02-21 19:42:49.195009552 Z
confirmation_sent_at: 2013-02-21 19:42:49.035655702 Z
unconfirmed_email: example@example.com
messages: !omap
- :email:
- can't be blank
- can't be blank
  F

 Finished tests in 2.479095s, 0.4034 tests/s, 1.2101 assertions/s.

1) Failure:
test_does_not_validate_without(UserTest) [test/unit/user_test.rb:105]:
this should be valid straight up

何を与える?? 確認したのにメールが空欄になるのはなぜですか? 郵便番号を更新する前に確認呼び出しを移動し、性別を更新した後、性別と郵便番号の両方の存在を検証しても、これは機能します (テストはエラーなしで実行され、すべてパスします)。現在、テストジェムはありません。

私のモデルの関連部分は次のとおりです。

  class User < ActiveRecord::Base

     devise :database_authenticatable, :confirmable, :registerable,:omniauthable, :recoverable, :rememberable, :trackable, :validatable

# Setup accessible (or protected) attributes for your model
attr_accessible :username, :sex, :email, :password, :first_name, :last_name, :zipcode,
              :password_confirmation, :remember_me, :provider, :uid, :avatar_image, :remote_avatar_image_url


validates :username, :uniqueness => true
validates :email, :uniqueness => true
validates_presence_of :sex, :zipcode, :password_confirmation
validates_presence_of :email
validates_length_of :zipcode, :is => 5
# attr_accessible :title, :body
has_one :gallery, :dependent => :destroy


end
4

1 に答える 1

0

電話確認できないと思います!ユーザーが有効でない限り

これが確認のドキュメントです!方法 :

# Confirm a user by setting it's confirmed_at to actual time. If the user
# is already confirmed, add an error to email field. If the user is invalid
# add errors
于 2014-10-22T08:19:01.467 に答える