站内信简单教程

项目需求

公司内部的简易邮件系统——站内信,基本的增删改查,一对一发送,群发,信息查看状态、

数据库设计

站内信的 “群发” 可覆盖 “一对一发送” ,如下定义

letter_text has_many :letters

letter(站内信)

字段 数据类型 默认值 备注
id integer
send_id integer 发送者(user)
rec_id integer 接受者(user)
text_see string 未查看 查看状态
letter_text_id integer 外键(letter_text)

letter_text(消息内容)

字段 数据类型 默认值 备注
id integer
title string 标题
text text (不为空) 聊天内容
send_time time 发送时间 发送时间

站内信项目的增删改查

基础建设

ruby -v
#=> ruby 2.3.1

rails -v
#=> rails 5.1.4

rails new letter
cd letter
git init
git add .
git commit -m "first commit"
git checkout -b ch01

省略前端套用、 User 表等基础建设

Routes

config/routes.rb

Rails.application.routes.draw do
  root 'letters#index'
  resources :users
  resources :letters
  resources :letter_texts
end

Model

文件 app/models/letter.rb 代码如下

class Letter < ApplicationRecord
  belongs_to :letter_text
  belongs_to :sender, class_name: "User", foreign_key: "send_id"
  belongs_to :recer, class_name: "User", foreign_key: "rec_id"
end

文件 app/models/letter_text.rb 代码如下

class LetterText < ApplicationRecord
  has_many :letters
end

Controller

文件 app/controllers/letters_controller.rb 代码如下

class LettersController < ApplicationController
  def index
    @letters = Letter.all
  end

  def show
    @letter = Letter.find(params[:id])
  end

  def destroy
    @letter = Letter.find(params[:id])
    @letter.destroy

    redirect_to letters_path
  end
end
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值