Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- Sequel::DatabaseError at /user/create
- SQLite3::ConstraintException: column login is not unique
- file: database.rb location: close line: 97
- require 'sinatra'
- require 'sequel'
- DB.create_table :users do
- primary_key :id
- String :login, :key => true, :length => (3..40), :required => true, :unique => true
- String :hashed_password, :required => true
- String :salt
- DateTime :created_at, :default => DateTime.now
- end
- class User < Sequel::Model
- # password authentication code
- end
- get '/user/create' do
- slim :user_create
- end
- post '/user/create' do
- user = User.new
- user.login = params['login']
- user.password = params['password']
- if user.save
- 'User created'
- else
- tmp = []
- user.errors.each do |e|
- tmp << (e.join('<br/>'))
- end
- tmp
- end
- end
- error Sequel::Error do
- e = env['sinatra.error']
- content_type :json
- status(400)
- return {
- message: e.message
- }.to_json
- end
- error Exception do
- e = env['sinatra.error']
- content_type :json
- status(400)
- return {
- message: e.message
- }.to_json
- end
- # models/account.rb
- Sequel::Model.plugin :validation_helpers
- class Account < Sequel::Model
- def validate
- super
- validates_unique :login
- end
- end
- # app.rb
- ...
- begin
- Account.create
- rescue => e
- puts e.message # login is not present
- end
- ...
Add Comment
Please, Sign In to add comment