快速业务通道

使用XForms和Ruby on Rails开发小型门诊管理系统,第4部分 - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-14
isit with patient:<br/></xf:label> </xf:textarea> </div> <div id="submit"> <xf:submit submission="submit-info"> <xf:label>Submit Information</xf:label> </xf:submit> </div> </p> <a href="doctor/list">Back to List</a> </body> </html>

首先要注意实例数据中新增加了两个元素 BPressure 和 Notes。这两个字段保 存医生所测得的患者血压,并告诉医生可以输入文本字段。这里的 submit-info 和 load_data 提交元素 的 action 属性指向医生控制器。最后,还可以看到 XForm 体中声明了两个新的 XForms 元素。

下面生成医生视图和控制器的 scaffolding。

使用XForms和Ruby on Rails开发小型门诊管理系统,第4部分(3)

时间:2011-11-29 ibm Tyler Anderson

医生视图和控制器

Rails scaffolding 为 Ruby 应用程序的开发提供了非常好的起点。生成的医生视图和控制器 scaffolding 如清单 2 所示。

清单 2. 生成医生视图和控制器的 scaffolding

ruby script/generate scaffold 

patient doctor
exists app/controllers/
exists app/helpers/
create app/views/doctor
exists app/views/layouts/
exists test/functional/
dependency model
exists app/models/
exists test/unit/
exists test/fixtures/
skip app/models/patient.rb
identical test/unit/patient_test.rb
identical test/fixtures/patients.yml
create app/views/doctor/_form.rhtml
create app/views/doctor/list.rhtml
create app/views/doctor/show.rhtml
create app/views/doctor/new.rhtml
create app/views/doctor/edit.rhtml
create app/controllers/doctor_controller.rb
create test/functional/doctor_controller_test.rb
create app/helpers/doctor_helper.rb
create app/views/layouts/doctor.rhtml
identical public/stylesheets/scaffold.css

要注意很多东西已经写好了,Rails 仅创建了还没有的文件。接下来需要定义 doctor 控制器中的 grab 和 update 方法,如清单 3 所示。

清单 3. 定义 doctor 控制器中的 grab 和 update 方 法

 def grab
  id = @request.env["HTTP_REFERER"].split(''='')[1]
  @patient = Patient.find(id)
  doc = REXML::Document.new(@patient.information)
  if doc.root.elements["Notes"] == nil then
   el = REXML::Element.new("Notes")
   doc.root.add el
  end
  if doc.root.elements["BPressure"] == nil then
   el = REXML::Element.new("BPressure")
   doc.root.add el
  end
  @patient.information = doc
 end
 def update
  doc = REXML::Document.new("<Info></Info>")
  params[:Info].each_pair do |key,value|
   if (key.index('':'') == nil) #removes
    el = REXML::Element.new key
    el.add_text value
    doc.root.add el
   else
    doc.root.add_attribute key,value
   end
  end
  id = @request.env["HTTP_REFERER"].split(''='')[1]
  @patient = Patient.find(id)
  @patient.information = doc
  @patient.update_attributes(params[:patient])
  redirect_to :action => ''list''
 end

使用XForms和Ruby on Rails开发小型门诊管理系统,第4部分(4)

时间:2011-11-29 ibm Tyler Anderson

首先要注意,grab 方法和其他两个控制器(kiosk 与 tr

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号