Вставка ограничений проверки с помощью драгоценного камня Sequel в базу данных PostgreSQL

Я новичок в Sequel, использую его впервые.

Я создал таблицу:

# connect to an in-memory database
DB = Sequel.connect('postgres://ritesh:newpassword@localhost')

# create an items table
DB.create_table :items do
  primary_key :id
  String :first_name
  String :last_name
  String :email
  String : zipcode
  String : company_name
  String : google
  String :skype
  String :phone 
  String :about
  String :linkedin_profile_url
end

end

Я хочу поместить ограничение регулярного выражения в поле email:

VALID EMAIL REGEX = /\A[\w+\-.]+@[a-z\d\-.]+\.[a-z]+\z/i

и аналогичные проверки, которые я должен выполнить для других столбцов, когда мы используем модель.

Я нашел "проверки модели" для добавления проверки, но я создаю стол.

Как поставить валидацию в метод create_table? Если мне нужно использовать эту таблицу для модели, как мне преобразовать таблицу в модель или использовать модель?

Я использую только виноград, Rails не используется. Это простое приложение Rake.


person Ritesh Mehandiratta    schedule 30.01.2013    source источник
comment
Будьте осторожны, используя это регулярное выражение для проверки адреса. Он может только показать, что строка адреса соответствует небольшому подмножеству спецификации адреса электронной почты. Настоящая спецификация требует очень сложного шаблона, который намного, намного длиннее. И если строка проходит этот тест, это еще не означает, что она действительна, т. е. что на другом конце есть пользователь. Только это можно определить, отправив сообщение на этот адрес и получив ответ от этого человека.   -  person the Tin Man    schedule 30.01.2013


Ответы (1)


Вы можете поместить в свою модель что-то вроде:

class Model < Sequel::Model
  plugin :validation_helpers

  def validate
    validates_format /\A[\w+\-.]+@[a-z\d\-.]+\.[a-z]+\z/i, :email
  end
end
person taro    schedule 30.01.2013