快捷搜索:

NetBeans Ruby on Rails中使用Ajax(二)

本教程以《建立Rails模型间的关系》一文为根基。假如已经学完该教程,那么您可以应用在该教程中构建的项目直接涉猎下一节。否则,下载RubyWebLogModel.zip文件并遵照这些步骤创建示例数据库。

添加Ajax支持

在项目中添加Ajax支持的第一步是包孕JavaScript库(Prototype和script.aculo.us)。这些库都绑定在Ruby on Rails中。Prototype库为Ruby on Rails中的Ajax实现供给基础类库,而script.aculo.us库供给的可视效果可以添加到利用法度榜样中。

1. 展开Views > Layouts并打开blog.rhtml文件。

2. 将以下代码行添加到stylesheet_link_tag行下面。

这行代码包孕JavaScript库(Prototype和script.aculo.us),这两个库都绑定在Ruby on Rails中。下一步必要创建一个form_remote_tag来触发Ajax动作。

3. 打开show.rhtml文件。删除现有的form_tag(履行HTTP POST),并应用以下form_remote_tag(履行XMLHTTPRequest)调换它。

{:action => "post_comment"} do %>

这行代码触发blog.controller.rb文件中post_comment Ajax动作。现在,当读者提交评论时,仍旧会从新加载全部页面。应用form_remote_ tag并包孕Javascript库之后,页面将不再发送提交哀求。法度榜样现在探求某些Javascript进行履行,但我们尚未编写这些Javascript代码。然而,假如强行刷新页面,您可以验证评论已经被添加。

4. 展开Controllers节点并打开blog_controller.rb文件。

5. 滚动到post_comment动作并用以下代码调换现有的redirect_to措施调用。

代码示例3:render措施调用

render :update do |page|

page.insert_html :bottom, 'comments', :partial => 'comment'

page[:comment_comment].clear

flash.keep(:post_id)

end

以上代码将_comment.rhtml partial动态插入到评论

标记的底部。将post_id保存在缓存中异常紧张,否则,用户插入的任何附加评论的post_id都为零,从而变成伶仃评论(评论表中没有定义任何参照完备性)。

6. 运行项目并验证评论已动态更新。

进阶:利用可视效果

之前在项目中包孕的script.aculo.us库可以供给可视效果。您可以用它来增强利用法度榜样的外不雅和样子容貌外形。此处,我们将利用效果高亮显示博客中的最新评论。利用此效果后,您可以很轻易地进修和考试测验script.aculo.us库中的其它效果。

1. 打开_comment.rhtml文件,并将下以粗体显示的id属性添加到已有

标记中。

代码示例4:确定最新评论的代码

>

这行代码用于标记您将要利用视觉效果的评论。

2. 切换到blog_controller.rb文件,将以下代码添加到render :update供给的代码块的末端。

page["comment_#{@comment.id}"].visual_effect :highlight, :duration => 3.5

3. 选择File > Save All,然后刷新浏览器(此操作为必需,这样Rails才能天生用于处置惩罚可视效果的Javascript代码并将其发送到浏览器)。添加一条评论,您会发明新评论将高亮显示。

未来计划

1.要获取支持和懂得最新的NetBeans Ruby开拓特点,请加入 users@ruby.netbeans.org 和 dev@ruby.netbeans.org 邮件列表。

2. 要提交您自己的NetBeans Ruby教程,请造访NetBeans社区文档页面

您可能还会对下面的文章感兴趣: