вы можете создать из своего терминала
rails generate model Document
и затем добавить файл миграции следующим образом:
create_table :documents do |t|
t.binary :file
t.integer :status, default: 0
t.datetime :exp_date
end
rails автоматически создаст идентификатор, поэтому вам не нужно его создавать
для двоичного типа зависит от вашей системы баз данных, здесь приведено сопоставление для некоторой известной системы баз данных
- Система баз данных Mysql будет создана как blob,
- Postgres -> bytea
- SQLite -> blob
- Oracle -> blob
для перечисления вы можете создать как целое число, но затем в вашей модели документа Вы должны предоставить следующую информацию (измените статус в соответствии с вашими потребностями)
class Document < ApplicationRecord
enum status: %i(draft verified published)
...
end
и вот некоторые подробности о типе колонны в рельсах для вашего типа документации
+-------------+---------------------------------------------------------------+
| column type | Description |
+-------------+---------------------------------------------------------------+
| :string | Limited to 255 characters by default, Might be case-sensitive |
| :text | Generally unlimited length depending on database |
| :integer | Whole number, in contrast to :decimal or :float. |
| :decimal | Stored with specified precision. Use for math accuracy. |
| :float | Floating-point decimal number with fixed precision |
| :boolean | True or false. |
| :binary | Raw chunks of data saved in database-specific way. |
| :date | Year, month and day (no time). |
| :time | Hours, minutes, seconds (no date). |
| :datetime | Date and time stored together. |
| :timestamp | Exactly the same as :datetime on Rails. |
+-------------+---------------------------------------------------------------+