快速业务通道

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

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-14
nfo"/> <xf:submission id="load_data" action="http://localhost:3000/kiosk/grab/0" method="post" replace="instance" /> <xf:action ev:event="xforms-ready"> <xf:dispatch name="xforms-submit" target="load_data"/> </xf:action> </xf:model> ... <a href="kiosk/list">Back to List</a> </body> </html>

非常简单吧?首先要注意,在 id 为 “submit-info” 的提交元素 中修改了动作 URL,指向 Ruby 更新脚本。还增加了一个新的动作元素并由 xforms-ready 事件触发,即 当表单加载的时候触发。然后触发的这个动作分派 id 为 “load_data” 的提交元素从新的 grab 视图提取数据。后面我们将看到这个新的视图。

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

时间:2011-11-29 ibm Tyler Anderson

Kiosk grab 视图和控制器

grab 视 图根据引用 URL 的 id 变量查询数据库中的患者记录,对 XML 进行适当地格式化,把数据返回 XForm。 实现这个新视图需要在app\views\kiosk 目录下增加一个新文件 grab.rhtml。定义如下(一行)。

<% @headers["Content-Type"] = "text/xml; charset=utf-8" %

><%= @patient.information %>

这里将头部 Content-Type 设置为 text/xml,这是 XForms 处理程序要求的格式。然后直接输出患者信息变量,即 DB2 数据库为该记录定义的 XML。

但是这里还需要编辑 kiosk 布局(app/views/layouts/kiosk.rhtml),其中只剩下一行: <%= yield %>。

这样做是为了删除 XForms 处理程序所需要的 XML 数据之前和之后的所有 多余标签。下一步是在 kiosk 控制器(app/controller/kiosk_controller.rb)中定义 grab,如清单 2 所示。

清单 2. 在控制器中定义 grab

 def grab
id = @request.env["HTTP_REFERER"].split(''='')[1]
@patient = Patient.find(id)
end

请注意,代码中包含从引用 URL 抓取的客户 id。这样就克服一个限制:XForms 不能在 POST 请求中提交接收到的 GET 请求变量。因此,如果 URL 是:

http://localhost:3000/editPatient.xhtml?id=60

从数据库中提取的记录的 id 是 60。数据然后传递给 清单 1 定义的 grab 视图,后者传递给 XForms。

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

时间:2011-11-29 ibm Tyler Anderson

Kiosk 列表视图

然后需要修改列表视图(app/views/kiosk/list.rhtml),为当前列出的患者加上链接,以便转到 editPatient 表单查看和编辑患者。修改后的视图如清单 3 所示。

清单 3. 修改 list 视图

<h1>Listing patients</h1> <table> <tr> <th><%= "ID" %></th> </tr> <% for patient in @patients %> <tr> <td><%=h patient.id %></td> <td><%= "<a href=\"../editPatient.xhtml?id=" + patient[:id].to_s + "\">Show/Edit</a>" %></td> <td><%= link_to ''Delete'', { :action => ''destroy'', :id => patient }, :confirm => ''Are you sure?'', :method => :post %></td> </tr> <% end %> </table> ... <br /> <a href="/newPatient.xhtml">New patient</a>

请注意显示的列的变 化。这里显示了 ID 列,并且 Show/Edit 链接指向 e

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