Closed yutokyokutyo closed 7 years ago
user = User.new(name: "#{'a' * 51}", email: "#{'a' * 244 + '@example.com'}")
irb(main):014:0> user.save
(0.2ms) begin transaction
(0.1ms) rollback transaction
=> false
irb(main):017:0> user.errors.full_messages
=> ["Name is too long (maximum is 50 characters)", "Email is too long (maximum is 255 characters)"]
irb(main):001:0> user = User.new(name: "Yuto Kondo", email: "k.yuto.cre@gmail.com")
=> #<User id: nil, name: "Yuto Kondo", email: "k.yuto.cre@gmail.com", created_at: nil, updated_at: nil, password_digest: nil>
irb(main):002:0> user.errors.full_messages
=> []
irb(main):003:0> user.errors
=> #<ActiveModel::Errors:0x007faf81bec318 @base=#<User id: nil, name: "Yuto Kondo", email: "k.yuto.cre@gmail.com", created_at: nil, updated_at: nil, password_digest: nil>, @messages={}, @details={}>
irb(main):002:0> user = User.new(name: "Yuto", email: "k.yuto.cre@gmail.com", password: "kuro")
=> #<User id: nil, name: "Yuto", email: "k.yuto.cre@gmail.com", created_at: nil, updated_at: nil, password_digest: "$2a$10$mwD/Pn9JHDDJy0YXEQOsJO/z1cG7cZQt5af1kOnTQeQ...">
irb(main):004:0> user.valid?
User Exists (0.2ms) SELECT 1 AS one FROM "users" WHERE LOWER("users"."email") = LOWER(?) LIMIT ? [["email", "k.yuto.cre@gmail.com"], ["LIMIT", 1]]
=> false
irb(main):005:0> user.errors.full_messages
=> ["Password is too short (minimum is 6 characters)"]
password の文字列数を長くしたらtrueになった 👌
irb(main):008:0> user.password = "kurotaky"
=> "kurotaky"
irb(main):009:0> user.valid?
User Exists (0.1ms) SELECT 1 AS one FROM "users" WHERE LOWER("users"."email") = LOWER(?) LIMIT ? [["email", "k.yuto.cre@gmail.com"], ["LIMIT", 1]]
=> true
irb(main):004:0> hoge = User.first
User Load (0.1ms) SELECT "users".* FROM "users" ORDER BY "users"."id" ASC LIMIT ? [["LIMIT", 1]]
=> #<User id: 1, name: "Michael Hartl", email: "mhart@example.com", created_at: "2017-04-01 08:11:37", updated_at: "2017-04-01 08:11:37", password_digest: "$2a$10$Rzw7BeHGn1qH4XBC.effkebonD1kkZc9nvyOm8BndCS...">
irb(main):005:0> hoge.save
(0.1ms) begin transaction
User Exists (0.3ms) SELECT 1 AS one FROM "users" WHERE LOWER("users"."email") = LOWER(?) AND ("users"."id" != ?) LIMIT ? [["email", "mhart@example.com"], ["id", 1], ["LIMIT", 1]]
(0.1ms) rollback transaction
=> false
irb(main):006:0> hoge.errors.full_messages
=> ["Password can't be blank", "Password is too short (minimum is 6 characters)"]
irb(main):008:0> hoge.name = "Yuto Kondo"
=> "Yuto Kondo"
irb(main):010:0> hoge
=> #<User id: 1, name: "Yuto Kondo", email: "mhart@example.com", created_at: "2017-04-01 08:11:37", updated_at: "2017-04-01 08:11:37", password_digest: "$2a$10$Rzw7BeHGn1qH4XBC.effkebonD1kkZc9nvyOm8BndCS...">
completed! https://rebuildsampleapp.herokuapp.com
コンソール上に出力するタイプの演習はissueで。