ぼざクリ タグ広場 https://hub.nizika.monster
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

27 lines
1.0 KiB

  1. class User < ApplicationRecord
  2. validates :name, length: { maximum: 255 }
  3. validates :inheritance_code, presence: true, length: { maximum: 64 }
  4. validates :role, presence: true, inclusion: { in: roles.keys }
  5. validates :banned, inclusion: { in: [true, false] }
  6. enum role: { guest: 'guest', member: 'member', admin: 'admin' }
  7. has_many :posts
  8. has_many :settings
  9. has_many :ip_addresses
  10. has_many :user_ips, dependent: :destroy
  11. has_many :ip_addresses, through: :user_ips
  12. has_many :user_post_views, dependent: :destroy
  13. has_many :viewed_posts, through: :user_post_views, source: :post
  14. has_many :created_wiki_pages, { class_name: 'WikiPage',
  15. foreign_key: 'created_user_id',
  16. dependent: :nullify }
  17. has_many :updated_wiki_pages, { class_name: 'WikiPage',
  18. foreign_key: 'updated_user_id',
  19. dependent: :nullify }
  20. def viewed? post
  21. user_post_views.exists? post_id: post.id, viewed: true
  22. end
  23. end