มีความคิดเกี่ยวกับวิธีการสร้างและบันทึกวัตถุผู้ใช้ใหม่ด้วยประดิษฐ์จากคอนโซลทับทิม?
เมื่อฉันพยายามที่จะบันทึกฉันจะได้รับเท็จเสมอ ฉันเดาว่าฉันขาดอะไรบางอย่างไป แต่ฉันไม่พบข้อมูลที่เกี่ยวข้อง
มีความคิดเกี่ยวกับวิธีการสร้างและบันทึกวัตถุผู้ใช้ใหม่ด้วยประดิษฐ์จากคอนโซลทับทิม?
เมื่อฉันพยายามที่จะบันทึกฉันจะได้รับเท็จเสมอ ฉันเดาว่าฉันขาดอะไรบางอย่างไป แต่ฉันไม่พบข้อมูลที่เกี่ยวข้อง
คำตอบ:
คุณสามารถเพิ่ม false ให้กับวิธีการบันทึกเพื่อข้ามการตรวจสอบถ้าคุณต้องการ
User.new({:email => "guy@gmail.com", :roles => ["admin"], :password => "111111", :password_confirmation => "111111" }).save(false)
มิฉะนั้นฉันจะทำสิ่งนี้
User.create!({:email => "guy@gmail.com", :roles => ["admin"], :password => "111111", :password_confirmation => "111111" })
หากคุณมีconfirmable
โมดูลที่เปิดใช้งานสำหรับการวางแผนตรวจสอบให้แน่ใจว่าคุณกำลังตั้งconfirmed_at
ค่าเป็นสิ่งที่ต้องการTime.now
ในขณะที่สร้าง
คุณควรทำสิ่งนี้โดยใช้
u = User.new(:email => "user@name.com", :password => 'password', :password_confirmation => 'password')
u.save
ถ้านี่กลับเท็จคุณสามารถโทร
u.errors
เพื่อดูว่ามีอะไรผิดปกติ
Confirmable
โทรu.confirm!
เมื่ออยู่ในแบบจำลองของคุณ: ตัวเลือกที่ยืนยันได้ซึ่งหมายความว่าผู้ใช้วัตถุควรได้รับการยืนยันก่อน คุณสามารถทำสองวิธีในการบันทึกผู้ใช้
แรกคือข้ามการยืนยัน:
newuser = User.new({email: 'superadmin1@testing.com', password: 'password', password_confirmation: 'password'})
newuser.skip_confirmation!
newuser.save
ข หรือใช้ยืนยัน! :
newuser = User.new({email: 'superadmin2@testing.com', password: 'password', password_confirmation: 'password'})
newuser.confirm!
newuser.save
หากคุณต้องการหลีกเลี่ยงการส่งอีเมลยืนยันทางเลือกที่ดีที่สุดคือ:
u = User.new({
email: 'demo@greenant.com.br',
password: '12feijaocomarroz',
password_confirmation: '12feijaocomarroz'
})
u.confirm
u.save
ดังนั้นหากคุณใช้อีเมลปลอมหรือไม่มีการเชื่อมต่ออินเทอร์เน็ตนั่นจะเป็นการหลีกเลี่ยงข้อผิดพลาด
confirm!
ตอนนี้เป็นเพียงconfirm
คำตอบข้างต้นไม่เหมาะกับฉัน
นี่คือสิ่งที่ฉันทำ:
User.create(email: "a@a.com", password: "asdasd", password_confirmation: "asdasd")
โปรดทราบว่ารหัสผ่านจะต้องมากกว่า 6 ตัวอักษร