mindpin/eshare

环境配置类型的课件

Opened this issue · 0 comments

说明

增加一种叫做 环境配置 类型(environment_config)的课件

比如
如何搭建 android 开发环境
这种内容的教程就适合做成 环境配置 类型的课件

环境配置类型(environment_config)的课件的结构如下
1 一个课件由多个 state 组成
2 每个 state 代表一个配置步骤(比如安装jdk就可以算作一个 state)
3 每个 state 有零到多个前置 state
4 每个 state 有零到多个后续 state

如果课件是环境配置类型(environment_config)
那么 course_ware.kind = "environment_config"

建模

  create_table :environment_config_states do |t|
    t.string :title
    t.text :content
    t.integer :course_ware_id
    t.timestamps
  end

  create_table :environment_config_state_relations do |t|
    t.integer :parent_state_id # 前置 state
    t.integer :child_state_id # 后续 state
    t.timestamps
  end

需要做的事情

1 environment_config_states 和 environment_config_state_relations 的基础的建模和校验关联等

2 提供以下方法

  # 查询 课件下 所有的 state(数组顺序的说明见最后的图)
  course_ware.environment_config_states

  # 查询 课件 下没有前置 state 的所有的 state
  course_ware.root_environment_config_states

  # state 的所有前置 state
  environment_config_state.parent_states

  # state 的所有后续 state
  environment_config_state.child_states  

image
图中 1 2 3 是 root_environment_config_states,因为他们没有前置 state
4 的 parent_states 是 1 2 3
4 的 child_states 是 5 6
1 的 child_states 是 4

course_ware.environment_config_states 的顺序需要是 (1 2 3) 4 (5 6)
括号中的顺序可以随意,因为他们是一个层级的
只是就是要保证这个数组中 后边的 state 不会是前边 state 的 前置