快速业务通道

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

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-14
://www.w3.org/2002/xforms"); xf|input { display: table-row; line-height: 2em; } xf|label { display: table-cell; text-align: right; font-family: Ariel, Helvetica, sans-serif; font-weight: bold; font-size: small; padding-right: 5px; width: 250px; } xf|*{ display: table-row; line-height: 2em; } #submitLabel{ display: table-row; } *:required { background-color: yellow; } *:invalid { background-color: yellow; } </style> <xf:model id="patientModel" schema="patient.xsd"> <xf:instance xmlns="" id="patient"> <p:Info> <FirstName></FirstName> <MiddleName></MiddleName> <LastName></LastName> <Age></Age> <Insurer></Insurer> <Id></Id> <PolicyHolder></PolicyHolder> <Copay></Copay> <Symptoms></Symptoms> </p:Info> </xf:instance> <xf:submission action="http://localhost:3000/kiosk/create" method="post" id="submit-info"/> </xf:model>

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

时间:2011-11-29 ibm Michael Galpin

请注意,模型引用了一个模式(patient.xsd)。XForms 会自动加载该模型并进行验证。此外还增加了一些 CSS 显示无效的数据。在浏览器中打开的结果如图 2 所示。

图 2. 包含验证和 CSS 的 XForms

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

用户必须输入必要的字段才能提交表单。如果输入的数据有效,将自动改变颜色并将焦点转移到新的表单字段。想一想,如果使用 JavaScript 需要编写多少代码。但利用 XSD 再加上一些 CSS 就轻松完成了。

XForms 提供了多种数据验证方式。不一定要使用 XML 模式,但这确实是一种简单的办法,尤其是对于很容易用模式描述的数据。客户端验证就绪之后,可以在服务器端集中处理提交的数据了。

表单提交

您可能已经注意到为表单提交定义了一个 URL。如果熟悉 Ruby on Rails,对这个 URL 应该不陌生。约定优于配置,因此遵循 Rails 的约定,URL /patient/create 对应 patient 控制器的 create 动作。使用 Ruby 生成脚本可以很容易实现,如清单 5 所示。

清单 5. 生成患者 scaffolding

>ruby script/generate scaffold patient kiosk
exists app/controllers/
exists app/helpers/
create app/views/kiosk
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/kiosk/_form.rhtml
create app/views/kiosk/list.rhtml
create app/views/kiosk/show.rhtml
create app/views/kiosk/new.rhtml
create app/views/kiosk/edit.rhtml
create app/controllers/kiosk_controller.rb
create test/functional/kiosk_controller_test.rb
create app/helpers/kiosk_helper.rb
create app/views/layouts/kiosk.rhtml
identical public/stylesheets/scaffold.css

生成的东西有些不需要。可以删除没有用的文件。最重要的两个是 patient 和 kiosk_controller 类。kiosk_controller 类,您可能已经猜到,是用于处理 XForms 请求的控制器。现在看看如何修改模型和控制器以便保存来自 XForms 的 XML。

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

时间:2011-11-29 ibm Michael Galpi

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站: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号