本博客用来记录学习资源聚合平台的整个开发过程,前两周主要做了需求分析和设计,忘记写博客了,从今天开始记录

首先,我负责的是课程模块的开发,先说一下这几天我做的模型的设计,主要有以下几个模型:课程(course)、知识(knowledge)、回复(reply),知识又分为三种:专栏(blog)、提问(question)、资源(resource),这三种采用单表继承的方式实现,具体来说就是利用一个type字段来区别类型,具体的实现如下:

2018/4/18 山东大学学习资源聚合平台工作

get_all_entry方法通过输入参数来分别返回三种类型知识的全部记录

课程的model如下:

字段名 类型
course_name string
knowledge knowledge
teacher teacher_relationship
keywords keyword

其中,knowledge、teacher、keywords为has_many的关系

knowledge的model如下:

2018/4/18 山东大学学习资源聚合平台工作

字段名 类型
course course
user user
type string
content string
good(点赞数) integer
bad(踩的数量) iinteger
updated_time timestamps

reply的model(还没具体想好,等之后再做)

除此之外,这几天还搭了一下课程首页的架子,效果如下:

2018/4/18 山东大学学习资源聚合平台工作

2018/4/18 山东大学学习资源聚合平台工作

在通过在route.rb中定义路径,可以完成页面的跳转:

2018/4/18 山东大学学习资源聚合平台工作

这里我遇到了一个问题:

当我想跳转到knowledges/question_new界面时出现了问题,原因是路由的匹配是从上到下的,当前面有一条匹配时就去跳转了,这时就会将question_new认为是一个id,去数据库查询,发现没有,报错,解决方法如下:

2018/4/18 山东大学学习资源聚合平台工作

先利用except函数去除show的匹配,这样就不会去匹配id了,我们在下面单独再写一条路由规则,并且限定id的输入必须是数字,这样就可以进行更细粒度的控制,从而完成正确路由

今天之前采用的编辑器是RubyMine,之后转用Cloud9云编译器,以便实现更好的管理,并且可以忽略本地环境,今天为平台的转移调试了环境。

准备在明天进行问题模块的发布的编程,并且对前端进行一些美化,使用bootstrap框架完成美化工作

总体来说,这几天主要完成了页面的逻辑跳转,建立了主要的模型,并且对Ruby on Rails的结构有了一些简单的了解,简单来说,view层只是负责显示的,而controller主要是监视界面,将页面的请求发给数据库,数据库以模型的数据结构来返回结果,所以主要的操作应该集中在controller层,这是我接下来几天需要构建的,即从前端得到数据,操作数据库得到结果并显示回来。下面这张图形象的说明了Rails的MVC结构:

2018/4/18 山东大学学习资源聚合平台工作

下面是今天项目的github地址:https://github.com/mottled233/SDU-Learning-resource-aggregation-platform.git中的course_part2分支

相关文章:

  • 2021-07-31
  • 2021-04-30
  • 2021-06-25
  • 2022-01-11
  • 2022-01-08
  • 2021-05-05
  • 2022-01-06
  • 2021-04-02
猜你喜欢
  • 2021-04-20
  • 2022-01-07
  • 2021-07-29
  • 2021-10-22
  • 2021-04-25
  • 2022-01-11
  • 2022-01-22
相关资源
相似解决方案