ruby on rails 會話系統(2017年实习项目)

rails 框架符合MVC设计模式

一,使用rails new 工程名  创建工程

  应用添加功能,需要添加一个控制器来接收用户的请求

  在工程目录下,使用generate 创建    

 创建控制器:

 rails generate controller welcome    

  用来在页面上向用户显示欢迎信息,发现自动生成了welcome控制器,和对应的视图文件夹welcome

如果不想要这个控制器与之所有相关的文件,使用rails destroy controller welcome

控制器中真正处理请求的不是控制器本身,而是action动作.下一步创建动作

rails的generate命令允许在创建控制器的时候也顺便同时生成需要的action

rails generate controller welcome first second

只要请求发送到了某一个action上,rails就会将对应的子视图进行显示,不需要其他处理.

当welcome接受了用户的请求,就是在访问首页的时候发送请求,让他调用welcome下面的first action,此时welcome接收了请求,并调用first action这个函数,

因为rails将对应的action和子视图联系起来了,所以将请求发送给了对应的first子视图,将子视图中的内容显示到了屏幕上,完成了这个请求.

控制器接收请求,调用action处理请求,最后显示于对应的view显示内容.

 

rails框架中的请求是什么?

为什么rails能够接收并识别一个请求的内容并能够对其进行相应的处理

这种请求有哪些类型,工作方式是怎样的?

 

rails 资源  重点

 

rest   restful应用程序 

web应用的本质:用户client和服务server的交互过程:

而rest就是用来描述用户client和服务server的交互方式的.

mvc 用来定义用户和server的结构,而rest用来定义交互方式

 

rest是资源的表现层状态转化.   资源,表现层,状态转化

资源是网络上的一种具体信息,只要能够让用户获取的信息,比如博客

所谓表现层可以理解为用户和服务器交互过程中,服务器返回信息的方式.比如用户要看博客列表的第一页,web应用返回了博客列表的第一页,比如txt格式,xml格式

 

当你看完第一页,想看第二页时, rest是无状态服务,不记录当前的位置.不知道当前是第几页.

如果我想看第二页,那么每次都需要精确的获取到服务器的位置,只有这样,才能把需要的内容返回给用户,

即用户想要操作服务器,就必须通过定位服务器的资源的方式,再加上某种手段,让服务器的状态发生转换,这种转化建立在表现层的基础上,所以称之为表现层的状态转化.

那么在REST中,是如何实现这些的呢?

  使用url定位资源

  使用http动作描述操作

 

注意:url和http分别是什么?

 

  什么叫做url资源定位:

    一条url路径必须完整包含获取资源的位置.

 

当url定位了需要操作的资源,还需要标明操作的方式,获取,修改,删除还是更新,就需要http动作描述(请求的方式:get,post,delete.update等等)

 

在访问资源位置的同时,在http请求中标明操作资源的方式,服务器收到这个信息后,就完整的知道了你请求的内容,就返回给相应的信息,完成请求.

因此,rest也就是用户和服务器交互的规范,交互语言.

 

REST将资源作为web应用的核心内容

看到url就知道服务器想访问什么

无状态的特性.保证了以免拥堵

 

当我们增加某种功能的时候,就去创建一个控制器去响应请求,或者需要添加一组资源的时候,就去创建一个控制器,

当我们需要添加一类功能或者需要添加一组资源的时候,就创建控制器,这就是为啥要创建控制器.

一个控制器往往对应一个功能.有了REST架构风格之后,一个控制器对应一组资源,同时对于同一种资源,不同的访问方式来使用不同的action,这样对于控制器action的命名以及功能的组织就很清晰.

资源的名称使用复数.

对于资料的访问,由http请求和url共同决定.

rails标准化了访问方式,默认的7种,

请求get 

URL: /books    就是获取所有的内容,对应的action是index,可以理解为索引

请求:post

URL: /books  根目录,   对应的是create, 创建

.......

 

create和new区别:

  create是创建新数据的函数,具体创建由他完成.

  new 是显示新创建数据的页面,填写好之后发送给create进行创建

 

通过这个我们知道了rails框架中什么时候创建控制器,怎么命名控制器,控制什么东西,怎么命名.  遵循一些约定

 

下面创建博客weibo

rails  new weibo  --skip-bundle

bundle stall

创建需要的控制器及其相应动作

rails generate controller posts indexshow create new

创建晚控制器和action之后,还需要修改路由,访问对应的资源.

修改routes.rb

首页设计的是显示所有的微博,则需要将路由改成首页的action,

root 'post#index'     

index是显示所有

启动rails s

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值