ruby复习资料详解.docx_第1页
ruby复习资料详解.docx_第2页
ruby复习资料详解.docx_第3页
ruby复习资料详解.docx_第4页
ruby复习资料详解.docx_第5页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

一 名词解释(20分=5个*4分)模型:表示数据和业务规则。在MVC的三个部分中,模型是最核心的部分,拥有最多的处理任务。它负责获取、处理和携带数据,同时还包括应用程序的相关业务规则逻辑。视图:负责生成用户看到并与之交互的界面。它会根据模型中的数据生成,同时接受用户提交的数据反馈给控制并最终传给模型处理。将视图单独作为一个部分进行开发的一个好处是应用程序可以方便地更改界面。控制器:是连接模型和视图的桥梁,它协调整个应用程序的运转,接受用户的输入,并调用模型和视图去完成用户的需求。当点击网页中的超链接或提交表单时,它只是接受请求并调用相应的模型处理请求,然后生成相应的视图来显示模型处理返回的数据给用户。散列:散列是最近非常流行的一种数据类型,它与数组类似,都是带索引的数据对象集合,与数组的区别在于索引不再仅限于数字,可以是任何对象,散列通常是无序的。单元测试:即模型的测试,是开发者编写的一小段代码,用于检验被测代码的一个很小的、很明确的功能是否正确。通常一个单元测试是用于判断某个特定条件下某个特定函数方法的行为,是区别于其他将整个系统视为整体来进行测试的测试形式。 静态测试:指不运行被测程序本身,仅通过分析或检查源程序的语法、结构、过程、接口等来检查程序的正确性。通过程序静态特性的分析,找出欠缺和可疑之处,其结果可用于进一步的查错,并为测试用例选取提供指导。Active Record:是一种领域模型模式,特点是一个模型类对应关系型数据库中的一个表,而模型类的一个实例对应表中的一行记录。关系型数据库往往通过外键来表述实体关系,Active Record 在数据源层面上也将实体关系映射为对象的关联和聚集。数据迁移:通过创建和运行迁移任务使数据库从一个状态转换到另一个状态的动作。每个迁移任务代表针对数据库进行的一次修改,修改的内容可以是数据库结构也可以是表中的数据等。二 简答题(30分=3个*10分)1. Rails应用程序框架处理一个请求的全过程。并用示意图说明路由组件 浏览器发出请求 路由组件找到控制器 控制器与模型进行交互浏览器控制器 控制器调用视图 视图生成浏览器的显示 数据库 模型视图 . 在一个Rails应用程序中,进入的请求首先被发送给一个路由组件,该组件判断应该将请求发送到应用程序的什么部分、如何解析这一请求。这一阶段将找出控制器代码中的action方法,要求它来处理请求。action可以查阅请求中携带的数据,可以与模型交互,也可以调用别的action。最后,action会为视图准备充分的信息,视图则将所需的信息展现给用户。2. Ruby on Rails应用程序框架的原理。并用MVC架构示意图说明。控制器 浏览器发出请求浏览器 控制器与模型进行交互 控制器调用视图 视图生成浏览器的显示 数据库 模型视图 . Ruby on rails是一个MVC框架,rails将应用程序按照模型、视图、控制器进行划分,并遵循这一结构分别开发各部分的功能。首先浏览器发出请求,然后控制器与模型进行交互,并调用视图,最后视图生成浏览器的显示。3. Rails控制器的功能和其辅助服务的作用。Rails控制器是应用程序的逻辑中心,它负责协调用户、视图与模型之间的交互。不过,Rails已经在幕后完成了大部分的交互,你需要编写的代码都集中在应用层面的功能上。控制器还提供以下几种重要的辅助服务:l 负责将外部请求指引到内部action,它所采用的URL命名规则对于普通人同样清晰易懂。l 负责管理缓存,这能给应用程序的性能带来数量级的提升。l 负责管理辅助模块,后者可以扩展视图模板的功能,而又不会让视图代码膨胀。l 负责管理session,让用户感觉仿佛是在与我们的应用程序进行持续不断的交互。4. Ruby数组(array)和散列(hash)的相同点和不同点相同点:一.数组和散列都是带索引的集合,可以容纳一组对象,并允许以索引键来访问这些对象。二.都可以容纳不同类型的对象。三.都能自动增长以容纳新的元素。不同点:一.数组索引键是一个整数,而散列允许任何对象作为索引。二.数组访问效率更高,散列则更灵活。5. 封送以及如何封送对象封送:Ruby能接收对象,并且将该对象转换成字节流,进而保存于应用程序之外的过程称为封送。Rails使用封送方法来存储会话数据,如果想用Rails动态地加载类,那么在Rails重组会话数据时或许还没有定义特定的类,因此需要在控制器中使用model声明,以便列出所有封送的模型,预先加载必要的类,使封送工作进行。三熟练掌握Rails命令(15分=5个*3分)创建Rails应用程序:rails new xx xx为应用程序名启动Rails Web服务器:rails server生成控制器:rails generate controller xx xx为控制器名生成脚手架:rails generate scaffold xx数据回滚迁移:rake db:rollback数据单元测试:rake test:units检查URL是否是以.gif、.jpg.、png结尾:validates :image_url, :format = :with =%r.(gif|jpg|png)$i,:message =”must be a URL for a GIF,JPG or PNG image.”创建数据表: rails generate scaffold xx四程序设计1.使用Date类输出2013年11月日历require Datedt=Date.new(2013,11,1)t=dt.wdaya=Array.new(t, ) print 2013年11月nprint 日 一 二 三 四 五 六na.each|obj| print obj, count=tfor i in 1.30count+=1if i10print ,i, elseprint i, endif count%7=0print nendend2.设计一个计算器,并包含+、-、*、/四个方法class Calculatorattr_accessor:numb1,:numb2def +print #self.numb1+#self.numb2=,self.numb1+self.numb2enddef -print #self.numb1-#self.numb2=,self.numb1-self.numb2enddef *print #self.numb1*#self.numb2=,self.numb1*self.numb2enddef /print #self.numb1/#self.numb2=,self.numb1/self.numb2endenda=Calculator.new print 请输入你要计算的式子nstr=gets.chompr1=Regexp.new(D1)r2=Regexp.new(d+)mat=str.scan(r1)arr=str.scan(r2)a.numb1=arr0.to_ia.numb2=arr1.to_iif mat0=+ a.+elsif mat0=* a.*elsif mat0=-a.-elsea./endclass Donorattr_accessor :name,:address,:age,:amount_of_donation,:cumlative_donation,:humanitarian def initialize(name=donor,address,age,amount_of_donation,humanitarian)=nameself.address=addressself.age=ageself.amount_of_donation=amount_of_donationself.humanitarian=humanitariansum_donation=50000enddef makes_a_donation(value)self.amount_of_donation=self.amount_of_donation.to_i+valuesum_donation=sum_donation+valueself.cumlative_donation=sum_donationself.humanitarian=1enddef amount_to_dateself.amount_of_donationendenddonor1=Donor.new(Bill,hubei,19,0,0)donor2=Donor.new(Bob,beijing,20,1000,1)donor3=Donor.new(IBM,nanjing,20,0,0)donor4=Donor.new(Mary,b

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论