NetBeans IDE 6.0 Ruby 译文
上一篇 / 下一篇 2007-11-07 22:54:05 / 个人分类:Ruby
TAG:
-
maninred
发布于2007-11-07 23:44:57
-
Creating a Ruby Weblog in 10 Minutes
10分钟内创建一个RubyWeb日志
QUOTE:
原文标题:Creatinga Ruby Weblog in 10 Minutes
原文作者:Brian Leonard
原文地址:http://www.netbeans.org/kb/60/ruby/rapid-ruby-weblog.html
译者:maninred@Ruby中文社区翻译团队
译文首发:http://ruby-lang.org.cn/forums/viewthread.php?tid=1896&page=1&extra=page%3D1#pid7321
转载请保留本版权信息,违者必究!
Contributedby Brian Leonard, maintained by Gail Chappell
October2007 [Revision number: V6.0-5]
在本教程中,在NetBeansIDE中使用Ruby支持,创建和运行一个示例web应用。这个例子演示了如何创建一个RubyWeb日志。跟随这基本的工作流程来创建一个模型类(Model),添加一个控制器(Contriller),还有创建一个视图(View)。
内容:
- 教程的先决条件
- 创建示例数据库
- 创建Rubyon Rails项目
- 配置数据库环境
- 创建模型类
- 迁移数据库
- 创建一个控制器
- 运行应用
- 更进一步:增加其他字段
- 更进一步:让这个列表的外观看起来像个博客
教程的先决条件
本教程需要以下的技术和资源- 一个数据库服务器
创建示例数据库
注意:本教程使用MySQL数据库服务器。参阅《安装配置Ruby支持》获得在Ruby应用中使用MySQL数据库服务器的相关信息。但这个文档也包含了有关怎样使用JavaDB数据库服务器的技巧。
在你创建Rubyon Rails项目前,按如下描述创建一个rubyweblog_development数据库。
1. 打开一个命令窗口
2.如果MySQL服务器还未启动,请启动它。
3.键入以下命令创建开发数据库,并按下Enter键CODE:
mysqladmin -u root -p create rubyweblog_development
注意:如果root用户没有密码,则省略-p参数。
创建Rubyon Rails项目
先从创建Rubyon Rails项目开始。使用默认这个应用程序被建立在一个符合Rubyon Rails项目惯例的目录结构中。
1.在NetBeansIDE中,选择File >New Project。
2.在分类区域中选择Ruby,并在项目区域中选择Rubyon Rails应用。点击Next。
注意:当你第一次在IDE中创建Ruby项目时,IDE会检查除绑定的JRuby软件外你是否其它的Ruby安装件。如果有,IDE会出现一个对话框来询问你要用哪个软件。如果你想用已绑定的JRuby解释器,就选择JRuby,或者如果想用你喜欢的Ruby安装件,那就选择你的安装件。想获得更多的信息,请参阅安装与配置的Ruby教程中的《用你自己的Ruby安装件来配置IDE》。
3.在project名字字段键入RubyWebLog。接受所有其他的默认设置。
4.点击Finish创建新项目。 IDE使用和你的项目相同的名字创建项目目录。你会看到以下的内容:- 在Project窗口中应用程序的基本种类。特别关注的是Controllers,Models和Views结点。在本教程中,你按照基本工作流程,创建模型类,添加一个控制器,还有创建一个视图。
- 在Output窗口中会出现一个这个应用程序部分的文件列表。你可以通过点击Output窗口中的一个链接,在编辑区域打开一个文件。
- 在编辑区域中的database.yml文件。
配置数据库环境
下一步是编辑database.yml文件,文件中已经配置好了使用MySQL适配器和开发数据库。你不需要做任何配置除非root用户需要密码。
1.在编辑区域中,在开发数据库配置中以提供该密码的方式编辑database.yml。
2.保存并关闭database.yml文件。
注意:如果你的操作系统的host文件不包含localhost,就用127.0.0.1。也要注意在一些系统中,数据库设置必须使用小写字母。
创建模型类
在这里你使用Rails生成器来为应用程序创建一个模型类。RubyWebLog应用需要一个帖子(Post)模型类来保存博客帖子的实例。
1.在Project窗口中,右击Models节点并选择Generate。
2.在Rails生成器的对话框中,在Arguments栏键入Post并点击OK。
Rails生成器创建出一个名叫Post的模型类。Output窗口列出了作为模型类生成的那部分文件:- app/models/post.rb.一个持有帖子(Post)模型类的方法的文件。这个文件也在编辑区中打开。
- test/unit/post_test.rb.一个检测帖子(Post)模型类的单元测试。
- test/fixtures/posts.yml.一个用来增加模型类测试套件(fixture)。
- db/migrate/migrate/001_create_posts.rb.一个用来定义数据库初始化结构的迁移文件。
你下一个要处理的文件是迁移文件,001_create_posts.rb。你添加信息来配置数据库
1.在Output窗口中,点击001_create_posts.rb文件的链接。打开这个文件,并显示建立一个表名为posts的self.up方法,还有删除posts表的 self.down方法。
2.像下面的代码所示,添加title列(用粗体显示的)到self.up方法中的create_table:
代码示例 1:001_create_posts.rb的代码
CODE:
class CreatePosts < ActiveRecord::Migration3.从主菜单里,选择File> Save All。
def self.up
create_table :posts do |t|
t.column "title", :string
end
end
def self.down
drop_table :posts
end
end
4.在Project窗口中,右击RubyWebLog节点并选择MigrateDatabase > To Current Version。
这个动作更新了含有数据库posts表。在Output窗口中显示迁移完成。
创建一个控制器
现在你使用Rails生成器创建一个控制器来和Post模型类交互。在本教程中,你添加脚手架代码,以提供一个可以在博客中创建,读取,更新和删除条目(entries)的简单CRUD界面。
1.在Project窗口中,右击Controllers节点并选择Generate。
2.在Rails生成器对话框中,在Name栏键入Blog。Views栏留空白。点击OK。
这个动作创建了blog_controller.rb文件,并在编辑区打开文件。在Project窗口中,一个blog_controller.rb节点被添加到Controllers节点
3.通过添加下面的脚手架代码来编辑blog_controller.rb,这个代码提供一个围绕着Post模型类的简单CRUD应用程序。
代码示例2:blog_controller.rb的代码
CODE:
class BlogController < ApplicationController
scaffold :post
end
运行这个应用程序
现在测试这个应用程序。
1.在Configuration节点下,打开routes.rb文件。找到这行:CODE:
2.通过删除注释符和把Welcome变更成blog,编辑这一行。
# map.connect '', :controller => "welcome"
"
3.展开Public节点,右击index.html并选择删除。
index.html显示一个你不想要的默认欢迎页面。通过删除index.html,Rails查找routes.rb找出哪个页面拿来显示,就是在上一步中你为博客设置的。
4.选择File > Save All。
5.在工具栏点击运行主项目(RunMain Project)按钮。
这个动作启动WEBrick服务器(属于Rubyon Rails框架的一部分),并在运行web浏览器。下面是应用程序的第一个页面。
图 1:RubyWebLog 首页
6.在应用程序的第二个页面点击Newpost,显示如下图 2:创建新帖子的页面
7.键入一个题目并点击OK。Followingis a sample blog post.
图 3:成功创建博客帖子
更进一步:添加其它字段
除了Title字段外,为了提供博客的正文,你添加其他字段使帖子(posts)表包含body栏目。创建一个字段的步骤现在应该比较熟悉了。
1.右击DatabaseMigrations节点并选择Generate。在Rails生成器对话框中,在Arguments栏键入AddBoby,并点击OK。 IDE就建立译文迁移脚本002_add_body.rb,并在编辑区打开。
2.像下面这样修改002_add_body.rb:
代码示例 3: 002_add_body.rb 的代码
CODE:
class AddBody < ActiveRecord::Migration这个迁移添加一个body字段到posts表,并且如果你想返回这个迁移,就再次移除这个body字段。
def self.up
add_column 'posts', 'body', :text
end
def self.down
remove_column 'posts', :body
end
end
3.选择File> Save All。
4.右击RubyWebLog节点并选择MigrateDatabase > To Current Version。
5.回到浏览器并点击NewPost链接看看Ruby怎么组织新的boby字段,下面的插图展示了结果。
图 4:有Body字段的新帖子
6.创建多一些博客条目。像例子中:
图 5:更多博客帖子
更进一步:使这个列表看起来更像一个博客
到目前为止,在BlogrControlle中使用的脚手架(scaffold)方法创建了一个能让你简单的测试Post模型类的基本CRUD应用程序。现在,你通过使用脚手架方法生成同样的视图,以便于能自定制用户界面。
1.在Projects窗口中,右击Views节点并选择Generate。
2.在Rails生成器对话框中,从生成(Generate)下拉列表中选择脚手架(scaffold)。
3.在ModelName栏键入Post并在ControllerName栏键入Blog。Actions栏留空白。选择Overwrite强制BlogController重新生成,然后点击OK。
IDE为Post模型类创建了一个视图,并在Output窗口列出了其内容。
4.展开Views> blog,并打开用来显示博客条目列表的list.rhtml。删除和标签并用下面的代码替换它们:
代码示例 4:list.rhtml 的代码
CODE:
<h1>The Ruby Blog</h1>对每一个post动作的实例,如插图6所示,这段代码产生一个题目,正文体和Permalink。
<% @posts.each do |post| %>
<h2><%= post.title %></h2>
<p><%= post.body %></p>
<small> <%= link_to 'Permalink', :action => 'show', :id => post %></small>
<hr>
<% end %>
5.选择File> Save All然后刷新你的浏览器查看Post模型的新界面。
图 6:新的改进过的模型类界面
6.先显示最近的博客条目,然后通过在list.rhtml中把.reverse添加到@posts后面来倒转排列顺序:CODE:
<% @posts.reverse.each do |post| %>当你保存文件并刷新你的浏览器,博客如下图所示。
图 7:反序的博客帖子
下几步- 想要继续阅读RubyWebLog教程并且学习更多有关NetBeansRuby on Rails的知识,去看<创建rails模型间的关系>。
- 想获得支持或得到有关NetBeansRuby最新特性的通知,请加入Mailing列表。
- 要提交你自己的NetBeansRuby教程,访问NetBeansCommunity Docs页面。
-
maninred
发布于2007-11-08 00:27:11
-
Building Relationships Between Rails Models
创建Rails模型类间的关系QUOTE:
Contributed by Brian Leonard, maintained by Gail Chappell
原文标题:Building Relationships Between Rails Models
原文作者:BrianLeonard
原文地址:http://www.netbeans.org/kb/60/ruby/model.html
译者:insight777@Ruby中文社区翻译团队
译文首发:http://ruby-lang.org.cn/forums/viewthread.php?tid=1896&;page=1&extra=page%3D1#pid7328
转载请保留本版权信息,违者必究!
October 2007 [Revision number: V6.0-2]
这篇教程讲述NetBeans Ruby onRails的项目中怎样在模型间建立(一对一和一对多)关系。
内容:
- 教程的先决条件
- 创建简单的数据库
- 创建评论(comment)模型类
- 迁移数据库
- 定义一种评论(comment)模型类和帖子(post)模型类之间的关系
- 修改控制器脚手架
- 修改视图以显示各种评论
- 显示各种评论(comments)
教程的先决条件
这篇教程需要以下技术和资源:
- 数据库服务器
创建简单的数据库
这篇教程是以《10分钟创建Ruby网络日志》为前提的。如果你已经完成那篇教程,你可以把那篇教程完成的项目作为起点并直接进入到下一部分。如果你没阅读那个教程,就下载RubyWeblog.zip文件,并且跟着那些步骤来创建简单的数据库。
注意:本教程使用MySQL数据库服务器。参阅《安装配置Ruby支持》获得在Ruby应用中使用MySQL数据库服务器的相关信息。但这个文档也包含了有关怎样使用JavaDB数据库服务器的技巧。
1.打开命令行窗口。
2.如果这时还没有开启MySQL数据库服务器,将它开启。
3.输入下面的命令来创建开发数据库,然后按回车键。
CODE:
mysqladmin -u root -p create rubyweblog_development
注意:如果根用户不要求密码,就省略-p这个参数。
4、在IDE中打开RubyWebLog项目。
注意:当你第一次在IDE中开启或创建Ruby项目时,IDE会检查除已绑定的JRuby软件外你是否还没其它的Ruby安装件。如果有,IDE会出现一个对话框来询问你要用哪个软件。如果你想用已绑定的JRuby解释器,就选择JRuby,或者如果想用你喜欢的Ruby安装件,那就选择你的安装件。想获得更多的信
息,请参阅安装与配置的Ruby教程中的《用你自己的Ruby安装件来配置IDE》。
5、如果你的数据库要求密码,编辑database.yml文件,并在在development配置下提供password。然后保存这个文件。为了快速存取这个database.yml文件,可以按快捷键Alt+Shift+O(苹果操作系统用Ctrl+Shift+O),在文件名正文框中输入database.yml,然后按回车键。
6、右击RubyWebLog节点,并选择MigrateDatabase) > ToCurrent Version。这个动作更新了含有数据库posts表,并加入一个body字段。在Output窗口中显示迁移完成。
创建评论模型类
通过使读者给一个日志帖子(post)添加各种评论(comments),这篇教程增进了RubyWeblog项目。你可以通过建立这个评论模型类来存储读者的各种评论实例来开始。这个项目已经有一个帖子(Post)模型类,用来存储各种博客帖子实例。
1.在Project窗口,如果RubyWebLog节点没有被展开,就展开它,并右击Model节点,然后选择Generate。
2.在Arguments栏中输入Comment,并点击OK.。
这个Rails生成器会生成一个叫Comment的模型类,这个模型类包括以下各文件:
- app/models/comment.rb。一个持有评论(Comment)模型类的方法的文件。这个文件也在编辑区中打开。
- test/unit/comment_test.rb。.一个检测评论(Comment)模型类的单元测试。
- test/fixtures/comments.yml。一个用来增加模型类测试套件(fixture)。
- db/migrate/migrate/003_create_comments.rb。一个修改数据库结构的迁移文件。这个文件的版本是003,因为这个项目在此之前已经有2个迁移文件了,即001_create_posts.rb和002_add_body.rb,他们用来创建和修改posts表。
在迁移文件中添加信息,这样读者的每个评论实例除了自动创建的id栏目以外,还有这个帖子的父帖子id,创建的时间和一个文本描述。
1. 在输出窗口中,点击003_create_comments.rb文件的链接,在编辑区中打开这个文件。
2.在self.up方法中,把以下代码(粗体显示)添加到create_table:
代码示例1:self.up 方法
CODE:
class CreateComments < ActiveRecord::Migration
def self.up
create_table :comments do |t|
t.column 'post_id', :integer
t.column 'created_at', :datetime
t.column 'comment', :text
end
end
def self.down
drop_table :comments
end
end
这个迁移建立了一个有4个字段的评论数据库表:id,含有一个整型数(integer),post_id,含有一个整型数(integer);created_at,存储日期和时间;还有comment,含有一个正本描述。
3.选择File>SaveAll。
4.右击RubyWebLog节点,并选择MigrateDatabase > ToCurrentVersion。这动作更新包含评论表数据库。在Output窗口中显示迁移完成。
定义帖子(post)与评论(comment)模型类间的关系
现在这个应用程序中有两个模型:用来创建新日志帖的帖子(post)模型类和向日志贴添加评论的评论(comment)模型类。你要定义两个模型间的关系,这样使一个评论和一个单一的帖子相关联,并且一个贴子可以有多个评论。
1.展开模型节点,,并打开post.rb。
2.在post.rb中添加一下的has_many关联。
代码示例2:has_many 与post.rb关联
CODE:
class Post < ActiveRecord::Base
has_many :comments
end
这个has_many方法表示帖子可以和零个,一个或多个的评论记录相关联。
3.打开Models >comment.rb,并且添加belongs_to关联:
代码示例3:belongs_to与comment.rb的关联
CODE:
class Comment < ActiveRecord::Base
belongs_to :post
end
这个belongs_to方法表示一个评论只可以和一个帖子相关联。默认时,ActiveRecord使用这个post_id把一个评论和那个含有相应post.id的帖子相关联。
修改控制器脚手架
下一步是要修改控制器,blog_controller.rb,它在这个日志帖中为创建,读入,更新和删除日志贴中的实体,生成脚手架或基本的接口。
1.双击Controllers >blog_controller.rb,在编辑区打开blog_controller.rb文件。这个控制器含有所有的脚手架行为,包括index,list, show, new, create, edit, update, 和destroy。
2.修改show行为,然后将post_id保存在flash中,如下面的代码所示:
代码样本4:show 行为
CODE:
def show
@post = Post.find(params[:id])
flash[:post_id] = @post.id
end
这段代码找到与请求传来的id参数相关联的帖子,然后将id存在flash中备用。flash与HTTP会话相似,但它只限于一个请求。当你将数据放入这个flash中,它就可以在下个请求中被使用,然后就消失了(因此叫做flash)。
3.将鼠标滚到blog_controller.rb文件的结尾,并在最后面的end语句之前加入下面的post_comment行为:
代码示例5:post_comment 行为
CODE:
def post_comment
@comment = Comment.new(
"post_id" => flash[:post_id],
"created_at" => Time.now,
"comment" => params[:comment]['comment']
)
if @comment.save
flash[:notice] = 'Comment was successfully added.'
redirect_to :action => 'show', :id => flash[:post_id]
end
end
当用户点击Post按钮提交评论时就调用post_comment行为。这段代码的第一块是从flash中获得post_id(像1、2、等),并且用它找出与这个id相关联的博客帖子。然后代码创建了一个新的评论comment)对象与这个post_id相关联,也就是由创建时间和实际评论(comment)组成。Rails框架把从这个页面提交的各参数作为一个散列(params[:comment])来传递,这个散列来自于该代码取出的评论参数(params[:comment]['comment'])。
Comment是一个ActiveRecord类,所以调用它的save方法将评论的记录保存到数据库中。然后消息放在flash中。该代码调用show行为,这个行为加载show.rhtml页面。这个页面重新加载这个日志和它的所有评论,包括刚刚新加的那个。
修改视图以显示评论(comment)
编辑显示单独的日志项show.rhtml文件。
1.展开Views >blog并打开show.rhtml
2.在show.rhtml的结尾添加下面的代码:
代码示例6: show.rhtml代码
CODE:
<hr>
<h4>Comments</h4>
<% form_tag :action => 'post_comment' do %>
<p><label for="comment_comment">Comment</label><br/>
<%= text_area 'comment', 'comment' %></p>
<%= submit_tag "Post" %>
<%end %>
这段代码生成一个表单(form)),包括用来写评论的文本域和一个标着Post的提交按钮,如图1所示。表单提交时调用post_comment行为。
3、保存文件然后运行应用程序。如果没有帖子,创建一个新的帖子。
4、点击Permalink查看博客项的细节。试着在文本域中加入评论,但是记住在你点Post按钮时博客还不能显示评论。
如果你发表成功,会看到视图顶部的消息,如下图所示。在下几步中,你就添加代码来收集并显示评论。
图1:没有评论的评论模型视图
显示评论(comment)
日志目前还不能显示读者添加的评论,所以你现在要解决这个问题。
1.在blog_controller.rb中找到show行为,并插入下面的post_comments实例变量来收集所有评论:
代码示例7:blog_controller.rb的代码
CODE:
def show
@post = Post.find(params[:id])
@post_comments = @post.comments.collect
flash[:post_id] = @post.id
end
2.通过在<h4>Comments</h4>行的后面复制粘贴<ul>标签来修改show.rhtml
代码示例8:show.rhtml代码CODE:
<ul>
<% for comment in @post_comments %>
<li><%= comment.comment %><br>
<div style="color=: #999; font-size: 8pt">
Posted on <%= comment.created_at.strftime("%B %d, %Y at %I:%M %p") %>
</div>
</li>
<% end %>
</ul>
这段代码为评论设置了格式并将它们显示在带有黑点的列表中,并包括评论发表的日期和时间。
3、选择File > SaveAll,然后刷新浏览器。
评论现在出现在日志的bulleted列表中,如下图所示:
图2: 有评论的评论模型的视图
下几步
- 想要继续阅读RubyWebLog教程并且学习更多有关NetBeansRuby on Rails的知识,去看《与Ruby on Rails一起使用Ajax》。
- 想获得支持或得到有关NetBeansRuby最新特性的通知,请加入Mailing列表。users@ruby.netbeans.orgusers@ruby.netbeans.org和dev@ruby.netbeans.orgdev@ruby.netbeans.org邮件列表。
- 要提交你自己的NetBeansRuby教程,访问NetBeansCommunity Docs页面。
[ 本帖最后由 maninred 于 2007-11-8 05:29 编辑 ]
-
maninred
发布于2007-11-08 02:21:13
-
Using Ajax With Ruby on Rails
与Ruby on Rails一起使用Ajax
QUOTE:
原文标题:Using Ajax With Ruby on Rails
原文作者:Brian Leonard
原文地址:http://www.netbeans.org/kb/60/ruby/ajax.html
译者:lgn21st@Ruby中文社区翻译团队
译文首发:http://ruby-lang.org.cn/forums/viewthread.php?tid=1896&;page=1&extra=page%3D1#pid7331
转载请保留本版权信息,违者必究!
Contributedby Brian Leonard, maintained by Gail Chappell
October 2007[Revision number: V6.0-2]
在本教程中,我们将向你演示向NetBeans的Ruby on Rails项目中添加Ajax支持,这个例子显示了如何动态地把评论交到一个WebLog中。
内容:
- 教程的先决条件
- 建立示例数据库
- 建立Partial 模板
- 加入Ajax支持
- 对动态更新添加RJS
- 更进一步:应用可视化效果
教程的先决条件
本教程使用了下列技术和资源:
- 数据库服务器。
- 支持Ruby的NetBeans IDE 6.0。
建立示例数据库
本教程基于另外一篇教程《创建Rails模型类间的关系》。如果你已经完成那篇教程,你可以把那篇教程完成的项目作为起点并直接进入到下一部分。如果你没阅读那个教程,就下载RubyWebLogModel.zip文件并按照下面步骤建立示例数据库。
注意:本教程使用MySQL数据库服务器。参见《安装配置Ruby支持》中的关于在Ruby应用程序中使用MySQL数据库的内容。文档中也描述怎样使用JavaDB数据库服务器。
1.打开命令行窗口。
2.如果MySQL数据库服务器没有事先启动,,那么请启动MySQL数据库服务器它。
3.输入如下命令并按回车,建立一个开发数据库,并按回车键。
CODE:
mysqladmin -u root -p createrubyweblog_development
注意:如果root用户不要求密码没有密码输入需求,忽省略-p参数。
4.在IDE中打开RubyWebLog项目。
注意:在IDE中第一次创建或打开Ruby项目,IDE会检查除已绑定的JRuby软件外你是否还有其它的Ruby安装件。如果有,IDE会显示一个对话框询问你选择用哪个软件。如果你想用已绑定的JRuby解释器,请选择JRuby,或者如果想用你喜欢的Ruby安装件,那就选择你的安装件。想获得更多的信息,请参阅《安装与配置的Ruby》教程中的用你自己的Ruby安装件来配置IDE。
5.如果你的数据库需要密码,编辑 database.yml 文件,并将密码填写在development配置部分。保存文件。
快速访问database.yml 文件:使用快捷键Alt+Shift+O(苹果操作系统用Ctrl+Shift+O),在文件名文本框中输入 database.yml并按回车。
6.右击RubyWebLog节点,选择Migrate Database > To Current Version。
这个动作更新数据库使它包含posts表,并加入一个body字段。在移动完成时,Output窗口会有显示。
7.运行这个应用程序。如果没有新的帖子,就建立一个新的帖子。
8.点击Permalink并向这个帖子添加一条评论。
注意:当你提交这个评论时,会重新加载整个页面的。
建立Partial模板
当前RubyWeblog项目中,无论何时读者在页面上添加一条评论,blog条目以及所有评论都会被重新载入这个页面。一个较好的解决方案是利用RubyOnRails框架部分的Ajax支持来动态载入这些评论。为了能够使用Ajax,你需要建立一个partial模板,在这个模版里保存显示这些评论的代码。使用partial模板的好处是可以多次调用这个partial(对于博客的每个评论是一次),而不需要提交博客条目本身。
1.右击 RubyWeblog节点,并选择New > RHTML File。将文件命名为_comments并存储到app\views\blog文件夹中。
IDE创建_comments.rhtml文件,并在编辑区打开文件。注意partial用下划线(_)作为文件名开头,以区别于一个标准模板。
当前显示评论的代码保存在show.rhtml文件中。在下一个步骤中,我们将从show.rhtml中移除这部分代码并粘贴到_comments.rhtml的partial模板中。
2.去到RubyWebLog > Views > blog文件夹,并打开show.rhtml。剪切显示评论部分的代码 (在代码示例1 中显示)。将代码粘贴到 _comments.rhtml文件中并替换掉所有原有的内容。
代码示例1:从show.rhtml取出,并粘贴到_comments.rhtml的代码
CODE:
<ul>3.回到 show.rhtml文件并插入下面的 <div> HTML标签,在
<% for comment in @post_comments %>
<li><%= comment.comment %><br>
<div style="color=: #999; font-size: 8pt">
Posted on <%= comment.created_at.strftime("%B %d, %Y at %I:%M %p") %>
</div>
</li>
<% end %>
</ul>
<h4>Comments</h4> 下, 即之前删除代码的位置加入代码,如下所示。
代码示例 2:show.rhtml的<div>标签
CODE:
<div id="comments">
<%= render(:partial => "comments", :object => @post_comments) %>
</div>
这代码创建一个名为评论的<div> 标签。变量@post_comments包含了commentspartial模板显示的那些评论。
4.选择 File > Save All,然后运行应用程序。
5.点击 Permalink并向帖子里添加一条评论。
在这一点,应用程序的表现与它以前做的完全一致。但是,现在你的应用程序已经被设计成可以开始使用Ajax支持了。
加入Ajax支持
把Ajax支持加入到你的项目中的第一步是包含JavaScript库,Prototype和script.aculo.us。这两个JavaScript库与RubyOn Rails绑定。Prototype库提供了在Rubyon Rails中Ajax实现的基础,而script.aculo.us库提供可以添加到你的应用程序的视觉效果。
1.展开 Views > layouts 然后打开 blog.rhtml 文件。
2.在那行含有stylesheet_link_tag的代码下面加入以下这行代码,:CODE:
<%= javascript_include_tag :defaults %>
这行代码有Javascript库、Prototype和script.aculo.us,他们与Robyon Rails绑定。 下一个步骤是建立一个form_remote_tag来触发这个Ajax行为。
3.打开show.rhtml文件,删除执行一个HTTP POST的form_tag,并用下面的执行XMLHTTPRequest的 form_remote_tag替换之。CODE:
<% form_remote_tag :url => {:action => "post_comment"} do %>这行代码会行为blog.controller.rb中的 post_comment行为触发这个Ajax行为。在这一点,当一个读者发布一个评论时,整个页面仍会重新加载。通过调用show的行为,post_comment行为会强制这个重新加载。最后一步是编辑blog_controller.rb文件来删除这个调用。
4.展开 Controllers 节点, 然后打开blog_controller.rb 文件。
5.找到 post_comment 行为,然后将 redirect_to 这一行注释掉。CODE:
# redirect_to :action => 'show', :id => flash[:post_id]
如果你现在运行这个应用程序,并加入一个评论,这个评论不显示出来。你必须在下一步插入RubyJavaScript(RJS)模板来处理XM








