Guest User

Untitled

a guest
Apr 14th, 2018
103
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.29 KB | None | 0 0
  1. Sequel::DatabaseError at /user/create
  2. SQLite3::ConstraintException: column login is not unique
  3. file: database.rb location: close line: 97
  4.  
  5. require 'sinatra'
  6. require 'sequel'
  7.  
  8. DB.create_table :users do
  9. primary_key :id
  10. String :login, :key => true, :length => (3..40), :required => true, :unique => true
  11. String :hashed_password, :required => true
  12. String :salt
  13. DateTime :created_at, :default => DateTime.now
  14. end
  15.  
  16. class User < Sequel::Model
  17. # password authentication code
  18. end
  19.  
  20. get '/user/create' do
  21. slim :user_create
  22. end
  23.  
  24. post '/user/create' do
  25. user = User.new
  26. user.login = params['login']
  27. user.password = params['password']
  28. if user.save
  29. 'User created'
  30. else
  31. tmp = []
  32. user.errors.each do |e|
  33. tmp << (e.join('<br/>'))
  34. end
  35. tmp
  36. end
  37. end
  38.  
  39. error Sequel::Error do
  40. e = env['sinatra.error']
  41. content_type :json
  42. status(400)
  43. return {
  44. message: e.message
  45. }.to_json
  46. end
  47.  
  48. error Exception do
  49. e = env['sinatra.error']
  50. content_type :json
  51. status(400)
  52. return {
  53. message: e.message
  54. }.to_json
  55. end
  56.  
  57. # models/account.rb
  58. Sequel::Model.plugin :validation_helpers
  59.  
  60. class Account < Sequel::Model
  61. def validate
  62. super
  63. validates_unique :login
  64. end
  65. end
  66.  
  67. # app.rb
  68. ...
  69. begin
  70. Account.create
  71. rescue => e
  72. puts e.message # login is not present
  73. end
  74. ...
Add Comment
Please, Sign In to add comment