使用XForms和Ruby on Rails开发小型门诊管理系统,第3部分 - 编程入门网
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 AndersonKiosk 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 AndersonKiosk 列表视图 然后需要修改列表视图(app/views/kiosk/list.rhtml),为当前列出的患者加上链接,以便转到 editPatient 表单查看和编辑患者。修改后的视图如清单 3 所示。 清单 3. 修改 list 视图
请注意显示的列的变 化。这里显示了 ID 列,并且 Show/Edit 链接指向 e |
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |