1
0
Fork 0
mirror of https://github.com/rails/rails.git synced 2022-11-09 12:12:34 -05:00
rails--rails/activerecord/test/models/book.rb
Jorge Manrubia 81afcabd19 Extract encrypted models to their own files
We are not encrypting attributes when loading models with the table
missing. This way we make sure we only load the encrypted models when
necessary during the encryption tests and prevent the problem of missing
encrypted attributes due to having cached the class without them encrypted.
2021-04-01 15:02:14 +02:00

35 lines
1.1 KiB
Ruby

# frozen_string_literal: true
class Book < ActiveRecord::Base
belongs_to :author
has_many :citations, foreign_key: "book1_id", inverse_of: :book
has_many :references, -> { distinct }, through: :citations, source: :reference_of
has_many :subscriptions
has_many :subscribers, through: :subscriptions
enum status: [:proposed, :written, :published]
enum last_read: { unread: 0, reading: 2, read: 3, forgotten: nil }
enum nullable_status: [:single, :married]
enum language: [:english, :spanish, :french], _prefix: :in
enum author_visibility: [:visible, :invisible], _prefix: true
enum illustrator_visibility: [:visible, :invisible], _prefix: true
enum font_size: [:small, :medium, :large], _prefix: :with, _suffix: true
enum difficulty: [:easy, :medium, :hard], _suffix: :to_read
enum cover: { hard: "hard", soft: "soft" }
enum boolean_status: { enabled: true, disabled: false }
def published!
super
"do publish work..."
end
end
class PublishedBook < ActiveRecord::Base
self.table_name = "books"
enum :cover, { hard: "0", soft: "1" }, default: :hard
validates_uniqueness_of :isbn
end