jsw: 开发 health-logs 功能

家人的健康日志,部分人可见
更新于: 2024-07-17 08:08:32

需求

健康日志: 
health-logs
name/date/event_content

gpt 对话

  1. 我想设计一个功能名为 health_logs (主要是给我和我的家人使用,总人数4-10个人)
  2. 字段如下
    1. 使用人的名字,这个可以存成单独的表(使用者基本信息) 这个取名为 family_user 吧,区别于普通的user
    2. 记录日期(具体的时间)
    3. 记录相关事件的标题,如:便血,鲜红色无其它症状
    4. 内容(比如说身体不适),医疗记录等,还有存档资料放在哪里(一般是有微云链接的)
    5. 相关图片(以pids方式存储)
  3. 使用 ruby on rails 实现
  4. 其它: ref_links/tags 等

 

建立 Model

rails generate model FamilyUser name:string
rails generate model HealthLog family_user:references date:datetime title:string content:text image_pids:text

实际 HealthLog

class HealthLog < ApplicationRecord
  belongs_to :family_user

  serialize :image_pids, Array

  validates :family_user, presence: true
  validates :date, presence: true
  validates :title, presence: true
  validates :content, presence: true
  validate :validate_image_pids

  private
  
  def validate_image_pids
    image_pids.each do |pid|
      unless valid_pid?(pid)
        errors.add(:image_pids, "包含无效的pid: #{pid}")
      end
    end
  end

  def valid_pid?(pid)
    pid.is_a?(String) && pid.length == 32 # 简单验证长度为32的字符串
  end
end

实际 FamilyUser

class FamilyUser < ApplicationRecord
  has_many :health_logs, dependent: :destroy

  validates :name, presence: true
end

添加 ref_links

添加 tags