我已經完成Chapter 6 of railstutorial,但我所有的User model specs已經開始,我添加password
& password_confirmation
與下面的錯誤後不久出現故障:railstutorial.org,第6章未知屬性:密碼
Failures:
1) User
Failure/Error: @user = User.new(name: "Example User", email: "[email protected]",
ActiveRecord::UnknownAttributeError:
unknown attribute: password
# ./spec/models/user_spec.rb:17:in `new'
# ./spec/models/user_spec.rb:17:in `block (2 levels) in <top (required)>'
2) User
Failure/Error: @user = User.new(name: "Example User", email: "[email protected]",
ActiveRecord::UnknownAttributeError:
unknown attribute: password
# ./spec/models/user_spec.rb:17:in `new'
# ./spec/models/user_spec.rb:17:in `block (2 levels) in <top (required)>'
3) User
Failure/Error: @user = User.new(name: "Example User", email: "[email protected]",
ActiveRecord::UnknownAttributeError:
unknown attribute: password
# ./spec/models/user_spec.rb:17:in `new'
# ./spec/models/user_spec.rb:17:in `block (2 levels) in <top (required)>'
4) User
Failure/Error: @user = User.new(name: "Example User", email: "[email protected]",
ActiveRecord::UnknownAttributeError:
unknown attribute: password
# ./spec/models/user_spec.rb:17:in `new'
# ./spec/models/user_spec.rb:17:in `block (2 levels) in <top (required)>'
5) User
Failure/Error: @user = User.new(name: "Example User", email: "[email protected]",
ActiveRecord::UnknownAttributeError:
unknown attribute: password
# ./spec/models/user_spec.rb:17:in `new'
# ./spec/models/user_spec.rb:17:in `block (2 levels) in <top (required)>'
6) User
Failure/Error: @user = User.new(name: "Example User", email: "[email protected]",
ActiveRecord::UnknownAttributeError:
unknown attribute: password
# ./spec/models/user_spec.rb:17:in `new'
# ./spec/models/user_spec.rb:17:in `block (2 levels) in <top (required)>'
7) User
Failure/Error: @user = User.new(name: "Example User", email: "[email protected]",
ActiveRecord::UnknownAttributeError:
unknown attribute: password
# ./spec/models/user_spec.rb:17:in `new'
# ./spec/models/user_spec.rb:17:in `block (2 levels) in <top (required)>'
8) User when name is not present
Failure/Error: @user = User.new(name: "Example User", email: "[email protected]",
ActiveRecord::UnknownAttributeError:
unknown attribute: password
# ./spec/models/user_spec.rb:17:in `new'
# ./spec/models/user_spec.rb:17:in `block (2 levels) in <top (required)>'
9) User when email is not present
Failure/Error: @user = User.new(name: "Example User", email: "[email protected]",
ActiveRecord::UnknownAttributeError:
unknown attribute: password
# ./spec/models/user_spec.rb:17:in `new'
# ./spec/models/user_spec.rb:17:in `block (2 levels) in <top (required)>'
10) User when name is too long
Failure/Error: @user = User.new(name: "Example User", email: "[email protected]",
ActiveRecord::UnknownAttributeError:
unknown attribute: password
# ./spec/models/user_spec.rb:17:in `new'
# ./spec/models/user_spec.rb:17:in `block (2 levels) in <top (required)>'
11) User when email format is invalid should be invalid
Failure/Error: @user = User.new(name: "Example User", email: "[email protected]",
ActiveRecord::UnknownAttributeError:
unknown attribute: password
# ./spec/models/user_spec.rb:17:in `new'
# ./spec/models/user_spec.rb:17:in `block (2 levels) in <top (required)>'
12) User when email format is valid should be valid
Failure/Error: @user = User.new(name: "Example User", email: "[email protected]",
ActiveRecord::UnknownAttributeError:
unknown attribute: password
# ./spec/models/user_spec.rb:17:in `new'
# ./spec/models/user_spec.rb:17:in `block (2 levels) in <top (required)>'
13) User when email address is already taken
Failure/Error: @user = User.new(name: "Example User", email: "[email protected]",
ActiveRecord::UnknownAttributeError:
unknown attribute: password
# ./spec/models/user_spec.rb:17:in `new'
# ./spec/models/user_spec.rb:17:in `block (2 levels) in <top (required)>'
14) User when password is not present
Failure/Error: @user = User.new(name: "Example User", email: "[email protected]",
ActiveRecord::UnknownAttributeError:
unknown attribute: password
# ./spec/models/user_spec.rb:17:in `new'
# ./spec/models/user_spec.rb:17:in `block (2 levels) in <top (required)>'
15) User when password confirmation is nil
Failure/Error: @user = User.new(name: "Example User", email: "[email protected]",
ActiveRecord::UnknownAttributeError:
unknown attribute: password
# ./spec/models/user_spec.rb:17:in `new'
# ./spec/models/user_spec.rb:17:in `block (2 levels) in <top (required)>'
16) User when password doesn't match confirmation
Failure/Error: @user = User.new(name: "Example User", email: "[email protected]",
ActiveRecord::UnknownAttributeError:
unknown attribute: password
# ./spec/models/user_spec.rb:17:in `new'
# ./spec/models/user_spec.rb:17:in `block (2 levels) in <top (required)>'
17) User return value of authenticate method with valid password
Failure/Error: @user = User.new(name: "Example User", email: "[email protected]",
ActiveRecord::UnknownAttributeError:
unknown attribute: password
# ./spec/models/user_spec.rb:17:in `new'
# ./spec/models/user_spec.rb:17:in `block (2 levels) in <top (required)>'
18) User return value of authenticate method with invalid password
Failure/Error: @user = User.new(name: "Example User", email: "[email protected]",
ActiveRecord::UnknownAttributeError:
unknown attribute: password
# ./spec/models/user_spec.rb:17:in `new'
# ./spec/models/user_spec.rb:17:in `block (2 levels) in <top (required)>'
19) User return value of authenticate method with invalid password
Failure/Error: @user = User.new(name: "Example User", email: "[email protected]",
ActiveRecord::UnknownAttributeError:
unknown attribute: password
# ./spec/models/user_spec.rb:17:in `new'
# ./spec/models/user_spec.rb:17:in `block (2 levels) in <top (required)>'
20) User with a password that's too short
Failure/Error: @user = User.new(name: "Example User", email: "[email protected]",
ActiveRecord::UnknownAttributeError:
unknown attribute: password
# ./spec/models/user_spec.rb:17:in `new'
# ./spec/models/user_spec.rb:17:in `block (2 levels) in <top (required)>'
Finished in 7.43 seconds
39 examples, 20 failures, 5 pending
Failed examples:
rspec ./spec/models/user_spec.rb:22 # User
rspec ./spec/models/user_spec.rb:23 # User
rspec ./spec/models/user_spec.rb:24 # User
rspec ./spec/models/user_spec.rb:25 # User
rspec ./spec/models/user_spec.rb:26 # User
rspec ./spec/models/user_spec.rb:27 # User
rspec ./spec/models/user_spec.rb:28 # User
rspec ./spec/models/user_spec.rb:32 # User when name is not present
rspec ./spec/models/user_spec.rb:37 # User when email is not present
rspec ./spec/models/user_spec.rb:42 # User when name is too long
rspec ./spec/models/user_spec.rb:46 # User when email format is invalid should be invalid
rspec ./spec/models/user_spec.rb:57 # User when email format is valid should be valid
rspec ./spec/models/user_spec.rb:73 # User when email address is already taken
rspec ./spec/models/user_spec.rb:78 # User when password is not present
rspec ./spec/models/user_spec.rb:83 # User when password confirmation is nil
rspec ./spec/models/user_spec.rb:88 # User when password doesn't match confirmation
rspec ./spec/models/user_spec.rb:96 # User return value of authenticate method with valid password
rspec ./spec/models/user_spec.rb:102 # User return value of authenticate method with invalid password
rspec ./spec/models/user_spec.rb:103 # User return value of authenticate method with invalid password
rspec ./spec/models/user_spec.rb:109 # User with a password that's too short
rake aborted!
用戶模型,可以發現here現在,我已經將源代碼與原始代碼進行了比較,但似乎我錯過了一些東西。不要它是什麼
有誰能告訴我爲什麼會出現這個錯誤?
所以我需要添加'attr_accessible'&'attr_accessor'?但在[示例源代碼](https://github.com/railstutorial/sample_app_2nd_ed/blob/master/spec/models/user_spec.rb)中,只使用了'attr_accesible'? – CuriousMind
是的,你需要兩個,每個服務於不同的目的。它在教程中缺失 – apneadiving
很酷,感謝您的幫助:) – CuriousMind