67c1719012
This fixes incorrect assumptions made by e991c7b that we can assume the DB is already casting the value for us. The enum type needs additional information to perform casting, and needs a subtype. I've opted not to call `super` in `cast`, as we have a known set of types which we accept there, and the subtype likely doesn't accept them (symbol -> integer doesn't make sense) Close #23190
24 lines
787 B
Ruby
24 lines
787 B
Ruby
class Book < ActiveRecord::Base
|
|
has_many :authors
|
|
|
|
has_many :citations, :foreign_key => 'book1_id'
|
|
has_many :references, -> { distinct }, through: :citations, source: :reference_of
|
|
|
|
has_many :subscriptions
|
|
has_many :subscribers, through: :subscriptions
|
|
|
|
enum status: [:proposed, :written, :published]
|
|
enum read_status: {unread: 0, reading: 2, read: 3}
|
|
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 cover: { hard: 'hard', soft: 'soft' }
|
|
|
|
def published!
|
|
super
|
|
"do publish work..."
|
|
end
|
|
end
|