<% module_namespacing do -%> class <%= class_name %> < <%= parent_class_name.classify %> <% attributes.select(&:reference?).each do |attribute| -%> belongs_to :<%= attribute.name %><%= ', polymorphic: true' if attribute.polymorphic? %> <% end -%> <% attributes.select(&:attachment?).each do |attribute| -%> has_one_attached :<%= attribute.name %> <% end -%> <% attributes.select(&:attachments?).each do |attribute| -%> has_many_attached :<%= attribute.name %> <% end -%> <% if class_name == 'User' -%> <% if doorkeeper_oauth? -%> has_many :access_grants, class_name: 'Doorkeeper::AccessGrant', foreign_key: :resource_owner_id, inverse_of: :resource_owner, dependent: :destroy has_many :access_tokens, class_name: 'Doorkeeper::AccessToken', foreign_key: :resource_owner_id, inverse_of: :resource_owner, dependent: :destroy <% end -%> <% attributes.each do |attribute| -%> <% if attribute.name == 'email' -%> validates :email, presence: true, uniqueness: { case_sensitive: false } before_validation :downcase_email, if: :email_changed? def downcase_email self.email = email.downcase end <% end -%> <% end -%> <% end -%> def list_item_as_json mw_list_item(text: <%= attributes.first.name %>) end def display_as_json [ mw_display_text(label: 'ID', text: id.to_s), mw_display_text(label: 'Text', text: <%= attributes.first.name %>) ] end end <% end -%>