<?xml version="1.0" encoding="UTF-8" ?>
<rss version="2.0">
  <channel>
    <title>benson 一切皆有可能</title>
    <description></description>
    <link>http://chinapkw.javaeye.com</link>
    <language>UTF-8</language>
    <copyright>Copyright 2003-2008, JavaEye.com</copyright>
    <docs>http://blogs.law.harvard.edu/tech/rss</docs>
    <generator>JavaEye - 做最棒的软件开发交流社区</generator>
      <item>
        <title>ramgick 剪切用户头像</title>
        <author>chinapkw</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://chinapkw.javaeye.com">chinapkw</a>&nbsp;
          链接：<a href="http://chinapkw.javaeye.com/blog/208730" style="color:red;">http://chinapkw.javaeye.com/blog/208730</a>&nbsp;
          发表时间: 2008年06月27日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          <p>以前在别的论坛，或网站。上传头像时。总是不是很好，有的直接缩略，有的。从中间剪切。</p>
<p>&nbsp;</p>
<p>在线剪切可以给用户更好的体验。呵</p>
<p>&nbsp;</p>
<p>今天就用jsCropperUI-1.2.0</p>
<p>&nbsp;</p>
<p>加上rmagick 做一个简单的在线头像剪切。。效果还可以如图。前端页面用jsCropperUi 给的例子很好做出</p>
<p>&nbsp;</p>
<p>后台代码也就几行而己</p>
<p>&nbsp;</p>
<pre name="code" class="ruby">     begin
            img = Magick::Image::read(tmpfile).first
            unless width == 0 or height == 0
                img.crop!(x1,y1,width,height)
            end
            img.thumbnail!(120, 150)
            img.write(outfile){ self.quality = 95; self.density = 92; }
        rescue Exception =&gt; err
            @upload_image_error = 'Could not process your image file.  Pleasetry again.' + err
            puts "****************#{@upload_image_error}*********************"
        end</pre>
<p>&nbsp;</p>
<p>tmpfile 为上传来的原始文件。</p>
<p>&nbsp;</p>
<p>outfile 为要输出的地址</p>
<p>&nbsp;</p>
<p>quality , density 为质量和精细度</p>
<p>&nbsp;</p>
<p>很简单的就可以完成了</p>
<p><img src="../../../upload/picture/pic/16771/c0e8a8ee-a60f-3dfe-a254-7b3b07e99ea2.jpg" alt="" /></p>
          <br/>
          <span style="color:red;">
            <a href="http://chinapkw.javaeye.com/blog/208730#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Fri, 27 Jun 2008 16:27:45 +0800</pubDate>
        <link>http://chinapkw.javaeye.com/blog/208730</link>
        <guid>http://chinapkw.javaeye.com/blog/208730</guid>
      </item>
      <item>
        <title>为了生活，我们四处奔波</title>
        <author>chinapkw</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://chinapkw.javaeye.com">chinapkw</a>&nbsp;
          链接：<a href="http://chinapkw.javaeye.com/blog/207976" style="color:red;">http://chinapkw.javaeye.com/blog/207976</a>&nbsp;
          发表时间: 2008年06月25日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          <p>转眼毕业两年了，来到北京两年了。还差几天</p>
<p>&nbsp;</p>
<p>&nbsp;<img src="http://p1.cn/photos/image/382201/medium/未命名.jpg" height="196" alt="" width="249" /></p>
          <br/>
          <span style="color:red;">
            <a href="http://chinapkw.javaeye.com/blog/207976#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Wed, 25 Jun 2008 18:23:45 +0800</pubDate>
        <link>http://chinapkw.javaeye.com/blog/207976</link>
        <guid>http://chinapkw.javaeye.com/blog/207976</guid>
      </item>
      <item>
        <title>railslogVisualizer and Ruby on Windows Mobile 5 </title>
        <author>chinapkw</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://chinapkw.javaeye.com">chinapkw</a>&nbsp;
          链接：<a href="http://chinapkw.javaeye.com/blog/204619" style="color:red;">http://chinapkw.javaeye.com/blog/204619</a>&nbsp;
          发表时间: 2008年06月17日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          <p>可视化的rails log分析工具，在网上找了一些都是很老的版本。我的air 都不能运行他们。这里上传一个新的版本</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>在手机上运行 ruby 呵</p>
<p>&nbsp;</p>
<p><a href="http://andryshuzain.com/journal/ruby-on-windows-mobile-5">http://andryshuzain.com/journal/ruby-on-windows-mobile-5</a></p>
          <br/>
          <span style="color:red;">
            <a href="http://chinapkw.javaeye.com/blog/204619#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Tue, 17 Jun 2008 11:16:19 +0800</pubDate>
        <link>http://chinapkw.javaeye.com/blog/204619</link>
        <guid>http://chinapkw.javaeye.com/blog/204619</guid>
      </item>
      <item>
        <title>CommunityEngine plugin for ruby</title>
        <author>chinapkw</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://chinapkw.javaeye.com">chinapkw</a>&nbsp;
          链接：<a href="http://chinapkw.javaeye.com/blog/203017" style="color:red;">http://chinapkw.javaeye.com/blog/203017</a>&nbsp;
          发表时间: 2008年06月13日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          <p><a href="http://missingmethod.brunobornsztein.com/projects/community_engine/">http://missingmethod.brunobornsztein.com/projects/community_engine/</a></p>
<p>&nbsp;</p>
<p><a href="http://missingmethod.brunobornsztein.com/projects/community_engine/" target="_blank">Community Engine</a>是一个免费，开放源始码的 Ruby On Rails社会化网络插件。下载并进行应用程序安装，你就能马上拥有一个自己的社会化网络．</p>
<p><img class="alignnone size-full wp-image-4427" title="social-network-plugin" src="http://parandroid.com/wp-content/uploads/2008/05/social-network-plugin.gif" height="32" alt="Community Engine: Ruby On Rails 社会化网络插件" width="251" /></p>
<p>Community Engine特点的主要包括：</p>
<ul>
<li>认证（注册，登录） </li>
<li>用户配置文件 </li>
<li>用户搜索 </li>
<li>博客可使用标记，分类和丰富的文本编辑 </li>
<li>照片上传和标记 </li>
<li>可视化书签 </li>
<li>评论和意见可通过电子邮件通知（博客，个人资料，照片，书签都可评论） </li>
<li>论坛 </li>
<li>友好和灵活的RSS订阅 </li>
<li>书签和博客文章的收藏功能 </li>
<li>以及更多！ </li>
</ul>
<p>介绍</p>
<p><a href="http://www.railslodge.com/plugins/1020-community-engine">http://www.railslodge.com/plugins/1020-community-engine</a></p>
          <br/>
          <span style="color:red;">
            <a href="http://chinapkw.javaeye.com/blog/203017#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Fri, 13 Jun 2008 16:09:39 +0800</pubDate>
        <link>http://chinapkw.javaeye.com/blog/203017</link>
        <guid>http://chinapkw.javaeye.com/blog/203017</guid>
      </item>
      <item>
        <title>typo rails 的开源 blog</title>
        <author>chinapkw</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://chinapkw.javaeye.com">chinapkw</a>&nbsp;
          链接：<a href="http://chinapkw.javaeye.com/blog/202469" style="color:red;">http://chinapkw.javaeye.com/blog/202469</a>&nbsp;
          发表时间: 2008年06月12日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          <p>小巧精致。</p>
<p>&nbsp;</p>
<p>下下来看看效果。学习一下<img src="http://typogarden.org/files/origami.png" height="470" alt="theme" width="700" /></p>
<p>theme</p>
<p><img src="http://typogarden.org/files/laughingatyou.png" height="470" alt="theme" width="700" /></p>
<p>&nbsp;</p>
<p><a href="http://typosphere.org/">http://typosphere.org/</a></p>
<p>&nbsp;</p>
<p>下载后想要试一下。可是没有sqlite3 从这里下载</p>
<p><a href="http://www.sqlite.org/download.html">http://www.sqlite.org/download.html</a></p>
<p>&nbsp;</p>
<p>把sqlite3.exe&nbsp; 和sqlite3.dll 放到 ruby/bin下面</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>当然可以直接在config/database.yml 里改成mysql的也没问题，</p>
<p>&nbsp;</p>
<p>安装 theme 也很简单。。去官司方网站下载后。放到theme 文件夹就可以了。</p>
<p>&nbsp;</p>
<p>还要注意一点。就是。我现在用rails 1.2.3 运行的 type 4.1。很老了。。所以现在从官网上下载的theme 都是比较新的。</p>
<p>&nbsp;</p>
<p>后缀名。改为.erb了。。所以你要手动改成 rhtml要不会出现找不到页面的情况。。如果是2.0不会出现错误</p>
          <br/>
          <span style="color:red;">
            <a href="http://chinapkw.javaeye.com/blog/202469#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Thu, 12 Jun 2008 13:28:22 +0800</pubDate>
        <link>http://chinapkw.javaeye.com/blog/202469</link>
        <guid>http://chinapkw.javaeye.com/blog/202469</guid>
      </item>
      <item>
        <title>e-texteditor 与cygwin 开发rails</title>
        <author>chinapkw</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://chinapkw.javaeye.com">chinapkw</a>&nbsp;
          链接：<a href="http://chinapkw.javaeye.com/blog/199796" style="color:red;">http://chinapkw.javaeye.com/blog/199796</a>&nbsp;
          发表时间: 2008年06月03日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          <p>用netbeans 开发rails 有一年时间了。受禁了折磨。。慢。真是慢啊。现在有</p>
<p>e-texteditor 幸福的感觉。</p>
<p>e-texteditor 结合cygwin 完成controller 到model,view..的导航。。也是当初我喜欢netbeans的原因。呵</p>
<p>在安装e-texteditor时。就会提示是否安装cygwin 没安装可以直接点击安装。不过安装后。还是有问题。</p>
<p>no such file to load -- ubygems (LoadError)</p>
<p>解决方法：</p>
<p>export RUBYOPT=</p>
<p>或 unset RUBYOPT</p>
<p>当然下次运行，还要设置一下。不知道如何永久设置这个值。</p>
<p><span style="color: #0000ff;">补充：</span></p>
<p><span style="color: #0000ff;">原来rubyopt这个变量就在系统的环境变量里。删除就可以了</span></p>
          <br/>
          <span style="color:red;">
            <a href="http://chinapkw.javaeye.com/blog/199796#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Tue, 03 Jun 2008 17:31:34 +0800</pubDate>
        <link>http://chinapkw.javaeye.com/blog/199796</link>
        <guid>http://chinapkw.javaeye.com/blog/199796</guid>
      </item>
      <item>
        <title>rails2.0  安装beast</title>
        <author>chinapkw</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://chinapkw.javaeye.com">chinapkw</a>&nbsp;
          链接：<a href="http://chinapkw.javaeye.com/blog/199580" style="color:red;">http://chinapkw.javaeye.com/blog/199580</a>&nbsp;
          发表时间: 2008年06月03日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          <p>今天想安装一下beast看看.毕竟用rails 这么久了.</p>
<p>本来以为很简单的.但还是出错.记录一下,beast 里面写的rails版本为</p>
<p># RAILS_GEM_VERSION = '1.1.2' unless defined? RAILS_GEM_VERSION</p>
<p>我现在要在2.0上运行．肯定要改很多东西．接下来我们看看都要改哪些可以运行起来，当然</p>
<p>要彻底的运行在2.0上要改的地方很多．慢慢来吧．大家也可以看看升级到2.0里面有哪些改动．</p>
<p><span style="color: #ff0000;">错误</span>:</p>
<ol>
<li><span>rake&nbsp;aborted! &nbsp;&nbsp;</span></li>
<li><span>undefined&nbsp;method&nbsp;`<span class="hilite1"><span class="hilite1"><span style="background-color: #ffff00;">template_root=</span></span></span>'&nbsp;</span><span class="keyword"><strong><span style="color: #7f0055;">for</span></strong></span><span>&nbsp;LoggedExceptionsController:Class&nbsp;&nbsp;&nbsp;</span></li>
</ol>
<p><span><span style="color: #0000ff;">解决方法</span>.</span></p>
<p><span>把plugin exception_logger 删除重装</span></p>
<p><a href="http://svn.techno-weenie.net/projects/plugins/exception_logger/">http://svn.techno-weenie.net/projects/plugins/exception_logger/</a></p>
<p>这样可以rake db:migrate </p>
<p><span style="color: #ff0000;">错误</span>：</p>
<p>但运行还是提示缺少acts_as_list</p>
<p>这是因为2.0移除了以前内置的东西．没关系．装一下这个plugin就可以了</p>
<p><span style="color: #0000ff;">解决</span>：</p>
<p>ruby script/plugin install acts_as_list</p>
<p><span style="color: #ff0000;">错误</span>：</p>
<p>接下来又出现错误</p>
<p>undefined local variable or method `all_search_posts_path' for #&lt;ActionView::Base:0x2c8899c&gt;</p>
<p>这也是2.0没有了这个方法</p>
<p><span style="color: #0000ff;">解决</span>：</p>
<p>把原文件app/views/layouts/application.rhtml&nbsp;&nbsp; 24行</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;% form_tag all_search_posts_path, :method =&gt; 'get' do -%&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;%= text_field_tag :q, params[:q], :size =&gt; 15, :id =&gt; :search_box %&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;% end -%&gt;</p>
<p>替换为</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;form action="/posts;search" method="get"&gt;&nbsp;&nbsp;&nbsp; <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;%= text_field_tag :q, params[:q], :size =&gt; 15, :id =&gt; :search_box %&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/form&gt;</p>
<p>也就是不用rails help 方法</p>
<p>到此所有的问题都解决了．．再刷新一下页面．beast 的页面出现了：）</p>
<p>但是不要高兴的太早，当点击users 又会出现错误了</p>
<p><span style="color: #ff0000;">错误</span>：</p>
<p>undefined method `paginate' for #&lt;UsersController:0x499042c&gt;</p>
<p>这很好理解了．rails2.0 去掉了内置的paginate 做为plugin 提供，现在可以看到beast 的首页了．如果要运行在2.0上．要把paginate 修改一下．</p>
          <br/>
          <span style="color:red;">
            <a href="http://chinapkw.javaeye.com/blog/199580#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Tue, 03 Jun 2008 00:29:11 +0800</pubDate>
        <link>http://chinapkw.javaeye.com/blog/199580</link>
        <guid>http://chinapkw.javaeye.com/blog/199580</guid>
      </item>
      <item>
        <title>“家乐福”成敏感词。呵</title>
        <author>chinapkw</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://chinapkw.javaeye.com">chinapkw</a>&nbsp;
          链接：<a href="http://chinapkw.javaeye.com/blog/188127" style="color:red;">http://chinapkw.javaeye.com/blog/188127</a>&nbsp;
          发表时间: 2008年04月29日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          <p>家乐福，咋就成了。敏感词了。呵</p>
<p>&nbsp;</p>
<p>不过。你真想搜。。给你一个地址</p>
<p><a href="http://66.249.89.99/search?hl=zh-CN&amp;q=%E5%AE%B6%E4%B9%90%E7%A6%8F&amp;lr">http://66.249.89.99/search?hl=zh-CN&amp;q=%E5%AE%B6%E4%B9%90%E7%A6%8F&amp;lr</a></p>
<p>&nbsp;</p>
<p>google 的搜索</p>
          <br/>
          <span style="color:red;">
            <a href="http://chinapkw.javaeye.com/blog/188127#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Tue, 29 Apr 2008 17:30:40 +0800</pubDate>
        <link>http://chinapkw.javaeye.com/blog/188127</link>
        <guid>http://chinapkw.javaeye.com/blog/188127</guid>
      </item>
      <item>
        <title>可拖拽，保存展开收起状态的个人主页</title>
        <author>chinapkw</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://chinapkw.javaeye.com">chinapkw</a>&nbsp;
          链接：<a href="http://chinapkw.javaeye.com/blog/155251" style="color:red;">http://chinapkw.javaeye.com/blog/155251</a>&nbsp;
          发表时间: 2008年01月12日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          <pre name="code" class="ruby">&lt;li id=&quot;my_list_b&quot;&gt;two&lt;div id=&quot;my_friend_2&quot; style=&quot;display:&lt;%if @user.position[3]==&quot;1&quot;%&gt;block&lt;%else%&gt;none&lt;%end%&gt;&quot;&gt;&lt;/li&gt;</pre><p>&nbsp;</p><p>核心就用到了</p><pre name="code" class="ruby">sortable_element(element_id, options = {}) 
Makes the element with the DOM ID specified by element_id sortable by drag-and-drop and make an Ajax call whenever the sort order has changed. By default, the action called gets the serialized sortable element as parameters. 

Example: 

  &lt;%= sortable_element(&quot;my_list&quot;, :url =&gt; { :action =&gt; &quot;order&quot; }) %&gt;

In the example, the action gets a &quot;my_list&quot; array parameter containing the values of the ids of elements the sortable consists of, in the current order. 

Important: For this to work, the sortable elements must have id attributes in the form &quot;string_identifier&quot;. For example, &quot;item_1&quot;. Only the identifier part of the id attribute will be serialized. 

Additional options are: 

:format: A regular expression to determine what to send as the serialized id to the server (the default is /^[^_]*_(.*)$/).  
:constraint: Whether to constrain the dragging to either :horizontal or :vertical (or false to make it unconstrained).  
:overlap: Calculate the item overlap in the :horizontal or :vertical direction.  
:tag: Which children of the container element to treat as sortable (default is li).  
:containment: Takes an element or array of elements to treat as potential drop targets (defaults to the original target element).  
:only: A CSS class name or arry of class names used to filter out child elements as candidates.  
:scroll: Determines whether to scroll the list during drag operationsif the list runs past the visual border.  
:tree: Determines whether to treat nested lists as part of the main sortable list. This means that you can create multi- layer lists, and not only sort items at the same level, but drag and sort items between levels.  
:hoverclass: If set, the Droppable will have this additional CSS class when an accepted Draggable is hovered over it.  
:handle: Sets whether the element should only be draggable by an embedded handle. The value may be a string referencing a CSS class value (as of script.aculo.us V1.5). The first child/grandchild/etc. element found within the element that has this CSS class value will be used as the handle.  
:ghosting: Clones the element and drags the clone, leaving the original in place until the clone is dropped (defaut is false).  
:dropOnEmpty: If set to true, the Sortable container will be made into a Droppable, that can receive a Draggable (as according to the containment rules) as a child element when there are no more elements inside (defaut is false).  
:onChange: Called whenever the sort order changes while dragging. When dragging from one Sortable to another, the callback is called once on each Sortable. Gets the affected element as its parameter.  
:onUpdate: Called when the drag ends and the Sortable&lsquo;s order is changed in any way. When dragging from one Sortable to another, the callback is called once on each Sortable. Gets the container as its parameter.  
</pre><p>&nbsp;</p><p>页面端。把各个显示的部分存成partials<br />_my_a.rhtml</p><pre name="code" class="ruby">&lt;li id=&quot;my_list_a&quot;&gt;one&lt;div id=&quot;my_friend_1&quot; style=&quot;display:&lt;%if @user.position[2]==&quot;1&quot;%&gt;block&lt;%else%&gt;none&lt;%end%&gt;&quot;&gt;&lt;/li&gt;</pre><p>&nbsp;</p><p>_my_b.rhtml</p><p>&nbsp;</p><p>这样，在拖拽完成后，可以向action=&gt;order 提交。一个字段为 my_list 的参数[&quot;a&quot;,&quot;b&quot;]</p><p>保存位置:action</p><p>Table.position = params[:my_list]</p><p>思路就是保存在表中的数据position 字段中根据数组的 index显示位置 把各个部分写成partial</p><p>显示的action</p><p>@order = Table.find(id).position</p><p>页面端</p><p>&lt;%= render :partial =&gt; &quot;<a href="mailto:partials/my_#{@order[0">partials/my_#{@order[0</a>]}&quot;, :locals=&gt;{:u =&gt; @user}%&gt;<br />&lt;%= render :partial =&gt; &quot;<a href="mailto:partials/my_#{@order[1">partials/my_#{@order[1</a>]}&quot;, :locals=&gt;{:u =&gt; @user}%&gt;</p><p>这样就完成的排序的功能。现在我们要加上各个块的状态保存</p><p>页面端改变块的状态</p><pre name="code" class="js">function my_shrink(obj,p)
{
 shrink_div = obj.id + &quot;_1&quot;
 if(document.getElementById(shrink_div).style.display==&quot;block&quot;)
 {
  document.getElementById(shrink_div).style.display=&quot;none&quot;;
  obj.src = &quot;/展开.gif&quot;;
               new Ajax.Updater('tmp_div', '/position/shrink/0?p='+p, {asynchronous:true, evalScripts:true});
 }else
 {
  document.getElementById(shrink_div).style.display=&quot;block&quot;
  obj.src = &quot;/收起.gif&quot;  
               new Ajax.Updater('tmp_div', '/position/shrink/1?p='+p, {asynchronous:true, evalScripts:true});
 }
}</pre><p><br />这是点击状态改变按钮触发的事件，把位置的状态保存</p><p>:action</p><p>Table.position.index[:params[:P]] = params[:id]</p><p>这样就保存的状态。</p><p>positon 字段存储为</p><p>['a','b','1','1']</p>
          <br/>
          <span style="color:red;">
            <a href="http://chinapkw.javaeye.com/blog/155251#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Sat, 12 Jan 2008 11:57:50 +0800</pubDate>
        <link>http://chinapkw.javaeye.com/blog/155251</link>
        <guid>http://chinapkw.javaeye.com/blog/155251</guid>
      </item>
      <item>
        <title>web 开发 js 调试工具</title>
        <author>chinapkw</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://chinapkw.javaeye.com">chinapkw</a>&nbsp;
          链接：<a href="http://chinapkw.javaeye.com/blog/151181" style="color:red;">http://chinapkw.javaeye.com/blog/151181</a>&nbsp;
          发表时间: 2007年12月27日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          IE下的：<br /><br />这个工具的名字叫Companion.JS，请注意，这可不是一个js文件，而是一个名字，它是作为ie的插件来安装使用的，而且需要结合Microsoft Script Debugger使用，通过安装这个工具，但页面出现错误时会在左上角弹出一个小错误提示，点击会在IE下面显示出一个错误控制台，就如FF下的 firebug控制台一样。错误信息提示很详细。<br /><br />如下是官网的一个错误提示示例图：<br /><br /><img src="http://www.my-debugbar.com/wiki/uploads/CompanionJS/introducing-cjs.png" /><br /><br />官网地址：http://www.my-debugbar.com/wiki/CompanionJS/HomePage<br /><br />具体使用方法为：<br />1、先下载Companion.JS安装文件，然后安装。<br />2、下载安装Microsoft Script Debugger，如果您的机器已经安装过了就可以免过这一步。<br />3、打开IE菜单“工具”--“Internet选项”--“高级”，找到“禁用脚本调试(Internet Explorer)”和“禁用脚本调试(在Internet Explorer之外)”，将两个选项前面的对钩都去掉，然后重启IE。<br />4、在Ie中输入：http://www.my-debugbar.com/wiki/uploads/CompanionJS/dummy.htm，然后点击click me链接，如果左上角弹出一个小错误提示或下面控制台出现了错误信息提示，就说明您已经安装成功了。<br /><br />script debugger 下载<br /><a href="http://download.microsoft.com/download/winscript56/Install/1.0/W9XMe/CN/scd10chs.exe" target="_blank">http://download.microsoft.com/download/winscript56/Install/1.0/W9XMe/CN/scd10chs.exe</a><br /><br />fire fox 下<br /><br />firebug<a href="http://d-3.cnc.52z.com//xl/firebug1.0-current.rar" target="_blank">http://d-3.cnc.52z.com//xl/firebug1.0-current.rar</a><br /><br /><img src="http://www.52z.com/uploadImages/2007723134512.gif" /><br /><br />view source chart<br /><br />这个也很好用。呵<br /><br /><img src="http://jennifermadden.com/scripts/browserSourceView.png" /><br /><img src="http://jennifermadden.com/scripts/chartSourceView.png" /><br /><br />网址：<a href="http://jennifermadden.com/scripts/ViewRenderedSource.html#1.5" target="_blank">http://jennifermadden.com/scripts/ViewRenderedSource.html#1.5</a>
          <br/>
          <span style="color:red;">
            <a href="http://chinapkw.javaeye.com/blog/151181#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Thu, 27 Dec 2007 11:51:49 +0800</pubDate>
        <link>http://chinapkw.javaeye.com/blog/151181</link>
        <guid>http://chinapkw.javaeye.com/blog/151181</guid>
      </item>
      <item>
        <title>安装rails2.0</title>
        <author>chinapkw</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://chinapkw.javaeye.com">chinapkw</a>&nbsp;
          链接：<a href="http://chinapkw.javaeye.com/blog/149277" style="color:red;">http://chinapkw.javaeye.com/blog/149277</a>&nbsp;
          发表时间: 2007年12月19日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          <strong>rails 2.0 终于发布了。呵<br /><br />装上试一下新功能。gem install rails 可是有错误。<br /><br />ERROR:  While executing gem ... (Zlib::BufError)<br />    buffer error<br /><br />错误在于，gem 的版本。呵<br /><br />我装的是ruby 1.8.6 gem 0.9.2<br /><br />更新一下gem update --system<br /><br />更新到gem 0.9.5<br /><br />再安装rails 2.0 问题解决  </strong><strong><span style="font-size: large">转一篇2.0新特性文章</span></strong><br /><br />David Heinemeier Hansson(DHH)在Ruby on Rails的官方blog上宣布,经历了将近一年的开发之后,Ruby on Rails 2.0目前已经正式发布.<br />2.0版本的Rails具备众多新的特性,并且在代码上做出了大量的修补和完善.就新版的发布,David这样写道:<br />Rails 2.0是Rails框架发展历史上的一个里程碑.我投入在Rails框架开发方面的工作已经有四年半的时间,并且Rails目前的开发参与者也越来越多. 对这几年我们所做出的努力和坚持的信念,我感到非常的满意.并且我们坚持一贯的理念,同时不断推动Rails的发展.<br /><br /><br /><br />发布说明中,描述最新特性的列表有很多内容.令Rails开发者最为关注的改进包括有:<br /><br />Action Pack: Resources<br /><br />在Controller之中充斥着大量action方法的情况已经不存在了,我们对RESTful方式的实现进行了大量的改进和提高.首先,我们不再使用分号来分隔自定义方法,而是采用斜线,例如原先是/people/1;edit的URL,现在改成了 /people/1/edit.另外我们还对URL路由资源添加了命名空间的支持,因此像后台管理的接口可以非常简单的定义如下:<br /><br />map.namespace(:admin) do |admin| admin.resources :products, :collection => { :inventory => :get }, :member => { :duplicate => :post }, :has_many => [ :tags, :images, :variants ]end<br />这种方式可以使开发者按照inventory_admin_products_url和 admin_product_tags_url的方式来定义命名路由.为了方便记录所有路由规则,我们添加了一个叫做“rake routes”的rake任务,可以帮助开发者列举出routes.rb定义的所有命名路由规则.<br /><br />此外我们还引入了一个新的约定,即所有基于资源的controller的默认形式都是复数形式.这样即便单个资源在不同路由规则中被多次引用,仍然可以指向同一个controller来处理,例如:<br /><br /># /avatars/45 => AvatarsController#show map.resources :avatars # /people/5/avatar => AvatarsController#show map.resources :people, :has_one => :avatar<br />Action Pack: Multiview<br />Action Pack中与资源映射一起增强功能的还有MultiView.我们已经有了respond_to方法,但我们可以更进一步,把MultiView控制延伸到模板里面去.我们可以根据模板文件的后缀格式来决定使用什么render呈现机制.因此,show.rhtml可以写成show.rhtml.erb,这就表明是show这个action的一个默认rhtml模板,和之前在Action里面使用respond_to声明的format.html是一个意思.此外还可以使用诸如show.csv.erb的形式,表明显示为csv格式的数据,并且使用默认的ERB去render呈现.<br /><br />所以,新的模板格式是: action.format.renderer.下面有几个例子:<br /><br />show.erb: 对于所有格式,都使用默认的erb显示show模板<br />index.atom.builder: 用Builder库来呈现XML文件,之前被称作rxml,输出的文件类型为RSS的AOTM类型<br />edit.iphone.haml: 使用自定义的HAML模板引擎机制(默认情况下并没有包含)来render输出模板内容到iPhone手机之上<br />说到iPhone手机,我们可以自定义一个专用类型来实现内部路由.当你需要类似iPhone这样的特殊HTML接口的时候,我们所要这样去实现.<br /><br />Action Pack: Record identification<br /><br />为了驱使开发者使用基于资源的映射,我们对资源映射的controller和view的URL处理进行了大量的简化.我们添加了大量命名约定,可以直接把model对象转化为资源映射的路由,例如:<br /><br /># person is a Person object, which by convention will # be mapped to person_url for lookup redirect_to(person) link_to(person.name, person) form_for(person)<br /><br />Action Pack: 贴近HTTP方式<br /><br />正如开发者期望的那样,Rails 2.0的Action Pack更加贴近HTTP并且充分利用了HTTP协议,例如资源、多种视图,以及其他更多的内容.我们添加了一个模块来处理HTTP的基本验证,可以使得授权的API轻松跨越SSL协议,而且非常简单易用.下面是一个例子(更多的例子请参考ActionController:: HttpAuthentication):<br /><br />class PostsController &lt; ApplicationController USER_NAME, PASSWORD = "dhh", "secret" before_filter :authenticate, :except => [ :index ] def index render :text => "Everyone can see me!" end def edit render :text => "I'm only accessible if you know the password" end private def authenticate authenticate_or_request_with_http_basic do |user_name, password| user_name == USER_NAME && password == PASSWORD end end end<br /><br />此外,我们在把JavaScript和CSS文件组织到一个逻辑单元之上这个方面做了很多工作,不需要让浏览器发起多次HTTP请求,分别获取每个JavaScript和CSS文件,以便减少HTTP请求次数.使用javascript_include_tag(:all, :cache => true) 这个helper在production模式下把public/javascripts/目录中所有js文件打包到单个 public/javascripts/all.js文件里面,但在开发环境下,仍然保持每个文件独立的修改,这样便可以反复迭代而不必清理缓存.<br /><br />我们还添加了一些选项让,仅用几行代码就能够让浏览器去访问多台服务器上面的资源.如果你添加如下设置:ActionController:: Base.asset_host = “assets%d.example.com”,那么Rails框架就会自动的把静态资源的请求分发到多台物理服务器上面去,例如分发到 assets1.example.com到 assets4.example.com等等之上.这样浏览器可以同时向多台服务器获取资源,增加你的应用的访问速度.<br /><br />Action Pack: 安全性<br /><br />能够快捷的创建出安全应用总是一件令人愉快的事情,而Rails2.0提供了大量先进功能来实现这一目标.重要的是,Rails现在提供了一种内建的机制来处理CRSF攻击.我们在所有的HTML表单和AJAX请求中包含了一个特殊的token,当请求来自于其他应用的时候,就可以及时检测到.所有这些安全选项,在新创建的Rails 2.0项目当中默认就是开启的状态,对于升级到Rails 2.0的应用,要打开这一个选项也很容易,可以使用ActionController::Base.protect_from_forgery来开启选项(详细的说明请参照:ActionController::RequestForgeryProtection).<br /><br />对于允许用户在应用当中提交嵌入HTML代码的情况,防止XSS攻击也变得更加简单了.之前的TextHelper#sanitize方法从过滤黑名单(很难保证安全性)转变成了验证白名单.如果你已经使用了sanitize方法,就可以自动获得更好的保护.当然你也可以自行调整sanitize 方法默认允许的HTML tag,请看TextHelper#sanitize获取详情.<br /><br />最后,我们还添加了对于HTTP单一cookies的支持,这一特性并不是所有的浏览器都支持,但是对于对此提供支持的浏览器就可以派上用场了.<br /><br />Action Pack: 异常处理<br /><br />大多数常见的异常都可以统一处理,而不是每个需要单独的处理.通常情况下,开发者只需要覆盖rescue_action_in_public方法,来进行统一的异常处理.但是也有可能需要使用自己的case语句来处理特定场合的异常.因此我们现在提供了一个类级别的宏叫做rescue_from,你可以使用这个宏来声明针对某个特定的Action来捕获异常,例如:<br /><br />class PostsController &lt; ApplicationController rescue_from User::NotAuthorized, :with => :deny_access protected def deny_access ... end end<br />Action Pack: 用Cookie存储sessions<br />Rails 2.0默认的Session存储机制目前是基于Cookie实现的.这意味着Session可以不必存储在服务器的文件系统或者数据库系统里面,而是以 hash的格式每次作为cookie发送到客户端浏览器来保持.这样做不仅仅会比传统的服务器端保存Session的方式要快一些,而且完全不需要维护.你不需要在服务器上面运行cron job任务来清理session文件,也不必担心因为你忘记清理session文件导致服务器tmp/session路径下面因为塞满了50万的 session文件,而使得服务器垮掉.<br />Action Pack: 新的request profiler<br />在实际的应用当中找出性能瓶颈是一个艰难的工作,但在有了我们新的request profiler之后,工作会变得简单很多.request profiler可以跟踪一个完整的执行脚本,报告查找执行的结果,你可以像这样来使用它:<br /><br />$ cat login_session.rb get_with_redirect '/' say "GET / => #{path}" post_with_redirect '/sessions', :username => 'john', :password => 'doe' say "POST /sessions => #{path}" $ ./script/performance/request -n 10 login_session.rb<br />这样你就可以得到一份非常详尽的HTML和文本格式的运行报告,包含每个步骤执行多少时间,有了这样的报告,就可以很清楚的知道如何优化你的应用程序.<br /><br />Action Pack: 特色功能<br /><br />同样值得一提的是AtomFeedHelper.它可以让你更容易的使用增强的Builder格式来创建RSS Feed输出.<br /><br />Active Record: 性能<br /><br />Active Record方面进行了众多的bug修复和部分调整,但是仍然有些值得一提的特性.我们添加了一个非常简单的查询缓存,它能够在同一个请求的过程当中记录相似的SQL调用,并且返回缓存的查询结果.查询缓存对于那些很难使用:include来解决的N+1次查询问题会非常有帮助.另外我们也彻底提高了 fixtures的性能,对于大多数常规的测试工具包,性能提高了50-100%.<br />Active Record: 改进的数据迁移脚本<br />现在我们有一种新的migration文件声明,来替换原有的格式.以前我们是这样来写的:<br /><br />create_table :people do |t| t.column, "account_id", :integer t.column, "first_name", :string, :null => false t.column, "last_name", :string, :null => false t.column, "description", :text t.column, "created_at", :datetime t.column, "updated_at", :datetimeend<br />而现在我们可以这样写:<br /><br />create_table :people do |t| t.integer :account_id t.string :first_name, :last_name, :null => false t.text :description t.timestampsend<br />Active Record: Foxy fixtures<br />在fixtures里面通过声明id属性作为主键,来构造fixtures之间的关联关系是枯燥的工作.现在你可以通过下面的方式声明和编写fixtures:<br /><br /># sellers.yml shopify: name: Shopify # products.yml pimp_cup: seller: shopify name: Pimp cup<br />如上所示,不再需要定义id属性,而是通过seller_id来关联fixtures,你现在可以直接使用fixtures的名字seller来建立关联关系.<br /><br />Active Record: 加入XML,移出JSON<br />ActiveRecord支持XML的序列化已有一段时间了.在Rails2.0当中,我们还添加了XML的反序列化功能,所以你现在可以这样用 Person.new.from_xml(“David“) 来获取person对象.当然我们也添加了序列化到JSON格式的功能,它和XML序列化的支持是一样的(包含嵌套的关联).只需要写 person.to_json就可以实现这样的功能了.<br />Active Record: 更加轻量级<br />为了让Active Record更加简洁和通用,我们把acts_as_xxx等功能移出了Rails,放在了Rails官方的SVN插件里面.如果你需要用到诸如 acts_as_list的话,那么你需要安装这个插件,你可以使用./script/plugin install acts_as_list来安装,安装好以后,acts_as_list功能又回来了,就像一切没有发生一样.<br /><br />更进一步的改动是我们把所有的商业数据库驱动全部挪到了外部的gem包里面.因此Rails 2.0仅仅自带MySQL、SQLite和PostgreSQL数据库驱动.这三个数据库是我们乐于积极测试和支持的数据库.当然,这并非意味着我们排斥商业数据库,我们只是希望它们能够在 Rails发行版本之外保持自己独立的开发和发布计划.对于商业数据库来说,这其实是一件好事情,让厂商可以在基础版本上面添加更多的异常和处理机制,使其工作的更好.<br /><br />所有的商业数据库驱动现在都存放在gems包里面,符合如下的命名规则:activerecord-XYZ-adapter.所以如果你安装了 activerecord-oracle-adapter包,那么这台机器上面所有的各种版本的Rails应用程序都可以访问Oracle数据库,你却无需在应用中修改任何一行代码.<br /><br />对于新的数据库驱动来说,这种方式在Rails社区中也可以更加方便的方式获得支持.只要你把数据库驱动安装命名规范打包成为gem,用户就可以安装这个gem并立刻在Rails程序当中使用其功能.<br /><br />Active Record: with_scope方法的使用<br /><br />ActiveRecord::Base.with_scope不被鼓励使用,以避免用户在controoler,特别是filter里面对其误用.现在我们鼓励用户仅仅在model里面使用这种格式,这也是当初我们设计这项功能的初衷和保持良好实践的需要.当然,这仅仅是鼓励和劝阻,如果你在衡量得失之后,非要坚持在model之外使用with_scope的话,你尽管可以使用.send(:with_scope)的方式来进行调用.<br />移出ActionWebService,加入ActiveResource<br />在SOAP和REST的争论当中,Rails选择坚定的站在REST一方,这并不出人意料.如果你并没有集成异构系统的需求的话,那么我们强烈不建议你使用SOAP.这是很自然的选择,我们已经将ActionWebService摘出Rails框架的默认依赖当中.只有gem包仍然保留,这是一个重要的信息,我们建议你尽量不用它.<br /><br />与此同时,我们把新的ActiveResource包从beta版本升级挪入Rails框架之内.ActiveResource很像 ActiveRecord,只不过面向的不是model而是资源.它有和ActiveRecord非常相似的API,并且可以和基于资源的Rails应用良好的整合.例如,ActiveResource提供了一个vanilla scaffold,你可以很容易的理解.<br /><br />Rails: 调试器回来了<br /><br />为了更好的将调试器与Rails整合在一起,我们对Rails框架整体进行了一系列改进.我最满意之处是在调试器之上新增断点功能.这不仅仅只是一个类似IRB dump那样的断点数据检测方式,而是一个真正的调试器.你可以拥有单步前进、单步后退、列举当前位置等功能.这完全得益于ruby-debug这个 gem包,所以我们推荐你安装这个gem包,之后Rails新的调试器就可以工作了.<br /><br />如果想使用调试器,那么首先安装ruby-debug这个gem包,然后把“debugger”命令写在应用程序当中,接着用- debugger或者-u参数启动服务器,当代码执行到debugger命令的地方,你就可以在运行服务器的终端上面直接操纵应用了,完全不需要使用 script/breakpointer或者其他的什么东西.当然你也可以在单元测试当中使用调试器.<br /><br />Rails: 更清洁的环境配置<br /><br />在Rails 2.0之前的版本,config/environment.rb文件当中塞满了各种各样的启动配置信息和代码.现在你可以把这些东西分门别类的放在独立的文件当中,然后把文件放在config/initializers目录下面,当Rails应用启动的时候它们就会被自动加载.新的 Rails 2.0应用自带了两个这样的例子,分别是inflections.rb(定义你自己的单复数规则)和mime_types.rb(定义你自己的扩展类型).我们建议开发者把启动配置信息放在其他文件里,而不去改动environment.rb文件.<br /><br />Rails: 易于管理的插件顺序<br /><br />现在我们开始把很多功能从Rails中分离出来,放到插件里面,你也许可能安装有一些其他依赖这些功能的插件.例如在你自己的 acts_as_extra_cool_list插件被加载之前,需要首先加载acts_as_list插件,因为 acts_as_extra_cool_list扩展了acts_as_list.<br /><br />在Rails2.0之前,需要在config.plugins里面列举所有的插件来设定插件加载次序.这种做法主要的问题是当你仅仅需要 acts_as_list插件加载次序在前,而不关心其他插件加载次序的时候需要做太多工作.而现在你仅需要这样写就可以:config.plugins = [ :acts_as_list, :all ].<br /><br />David同时说明另外还有数百处的其他修正,在此不展开一一列举.<br /><br />升级<br /><br />如果你希望将原有应用升级到Rails2.0,那么推荐你应该首先升级到Rails 1.2.6版本.这是由于Rails 1.2.6中包含对Rails 2.0更新功能的警告信息.如果应用程序在Rails 1.2.6上面良好运行,并且没有警告信息,那么你就可以升级到Rails 2.0了.<br /><br />获取Ruby on Rails更多的信息,请访问Ruby on Rails官方站点.<br /><br />译注:本文翻译时,参考了robbin先生的Ruby on Rails 2.0的新特性介绍一文,在此表示谢意.<br /><br />作者 Robert Bazinet译者 高昂
          <br/>
          <span style="color:red;">
            <a href="http://chinapkw.javaeye.com/blog/149277#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Wed, 19 Dec 2007 00:19:56 +0800</pubDate>
        <link>http://chinapkw.javaeye.com/blog/149277</link>
        <guid>http://chinapkw.javaeye.com/blog/149277</guid>
      </item>
      <item>
        <title>cache_count</title>
        <author>chinapkw</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://chinapkw.javaeye.com">chinapkw</a>&nbsp;
          链接：<a href="http://chinapkw.javaeye.com/blog/142311" style="color:red;">http://chinapkw.javaeye.com/blog/142311</a>&nbsp;
          发表时间: 2007年11月21日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          <span removechild="function MyRC(arg1){var self = this;if (self.removeAttribute)self.removeAttribute(&quot;removeChild&quot;);var result = self[&quot;removeChild&quot;](arg1);self[&quot;removeChild&quot;] = arguments.callee; /*Finally restore the Override Function*/if(arg1.clearAttributes)arg1.clearAttributes();if(arg1.onclick)arg1.onclick=null;if(arg1.onmousemove)arg1.onmousemove=null;if(arg1.onmouseover)arg1.onmouseover=null;if(arg1.ondblclick)arg1.ondblclick=null;if(arg1.onmouseenter)arg1.onmouseenter=null;if(arg1.onmouseleave)arg1.onmouseleave=null;return result;}" class="c"><font removechild="function MyRC(arg1){var self = this;if (self.removeAttribute)self.removeAttribute(&quot;removeChild&quot;);var result = self[&quot;removeChild&quot;](arg1);self[&quot;removeChild&quot;] = arguments.callee; /*Finally restore the Override Function*/if(arg1.clearAttributes)arg1.clearAttributes();if(arg1.onclick)arg1.onclick=null;if(arg1.onmousemove)arg1.onmousemove=null;if(arg1.onmouseover)arg1.onmouseover=null;if(arg1.ondblclick)arg1.ondblclick=null;if(arg1.onmouseenter)arg1.onmouseenter=null;if(arg1.onmouseleave)arg1.onmouseleave=null;return result;}" face="Arial">
<div removechild="function MyRC(arg1){var self = this;if (self.removeAttribute)self.removeAttribute(&quot;removeChild&quot;);var result = self[&quot;removeChild&quot;](arg1);self[&quot;removeChild&quot;] = arguments.callee; /*Finally restore the Override Function*/if(arg1.clearAttributes)arg1.clearAttributes();if(arg1.onclick)arg1.onclick=null;if(arg1.onmousemove)arg1.onmousemove=null;if(arg1.onmouseover)arg1.onmouseover=null;if(arg1.ondblclick)arg1.ondblclick=null;if(arg1.onmouseenter)arg1.onmouseenter=null;if(arg1.onmouseleave)arg1.onmouseleave=null;return result;}" class="code_title">ruby 代码</div>
<div removechild="function MyRC(arg1){var self = this;if (self.removeAttribute)self.removeAttribute(&quot;removeChild&quot;);var result = self[&quot;removeChild&quot;](arg1);self[&quot;removeChild&quot;] = arguments.callee; /*Finally restore the Override Function*/if(arg1.clearAttributes)arg1.clearAttributes();if(arg1.onclick)arg1.onclick=null;if(arg1.onmousemove)arg1.onmousemove=null;if(arg1.onmouseover)arg1.onmouseover=null;if(arg1.ondblclick)arg1.ondblclick=null;if(arg1.onmouseenter)arg1.onmouseenter=null;if(arg1.onmouseleave)arg1.onmouseleave=null;return result;}" class="dp-highlighter">
<div removechild="function MyRC(arg1){var self = this;if (self.removeAttribute)self.removeAttribute(&quot;removeChild&quot;);var result = self[&quot;removeChild&quot;](arg1);self[&quot;removeChild&quot;] = arguments.callee; /*Finally restore the Override Function*/if(arg1.clearAttributes)arg1.clearAttributes();if(arg1.onclick)arg1.onclick=null;if(arg1.onmousemove)arg1.onmousemove=null;if(arg1.onmouseover)arg1.onmouseover=null;if(arg1.ondblclick)arg1.ondblclick=null;if(arg1.onmouseenter)arg1.onmouseenter=null;if(arg1.onmouseleave)arg1.onmouseleave=null;return result;}" class="bar"></div>
<ol removechild="function MyRC(arg1){var self = this;if (self.removeAttribute)self.removeAttribute(&quot;removeChild&quot;);var result = self[&quot;removeChild&quot;](arg1);self[&quot;removeChild&quot;] = arguments.callee; /*Finally restore the Override Function*/if(arg1.clearAttributes)arg1.clearAttributes();if(arg1.onclick)arg1.onclick=null;if(arg1.onmousemove)arg1.onmousemove=null;if(arg1.onmouseover)arg1.onmouseover=null;if(arg1.ondblclick)arg1.ondblclick=null;if(arg1.onmouseenter)arg1.onmouseenter=null;if(arg1.onmouseleave)arg1.onmouseleave=null;return result;}" class="dp-rb">
    <li removechild="function MyRC(arg1){var self = this;if (self.removeAttribute)self.removeAttribute(&quot;removeChild&quot;);var result = self[&quot;removeChild&quot;](arg1);self[&quot;removeChild&quot;] = arguments.callee; /*Finally restore the Override Function*/if(arg1.clearAttributes)arg1.clearAttributes();if(arg1.onclick)arg1.onclick=null;if(arg1.onmousemove)arg1.onmousemove=null;if(arg1.onmouseover)arg1.onmouseover=null;if(arg1.ondblclick)arg1.ondblclick=null;if(arg1.onmouseenter)arg1.onmouseenter=null;if(arg1.onmouseleave)arg1.onmouseleave=null;return result;}" class="alt"><span removechild="function MyRC(arg1){var self = this;if (self.removeAttribute)self.removeAttribute(&quot;removeChild&quot;);var result = self[&quot;removeChild&quot;](arg1);self[&quot;removeChild&quot;] = arguments.callee; /*Finally restore the Override Function*/if(arg1.clearAttributes)arg1.clearAttributes();if(arg1.onclick)arg1.onclick=null;if(arg1.onmousemove)arg1.onmousemove=null;if(arg1.onmouseover)arg1.onmouseover=null;if(arg1.ondblclick)arg1.ondblclick=null;if(arg1.onmouseenter)arg1.onmouseenter=null;if(arg1.onmouseleave)arg1.onmouseleave=null;return result;}"><span removechild="function MyRC(arg1){var self = this;if (self.removeAttribute)self.removeAttribute(&quot;removeChild&quot;);var result = self[&quot;removeChild&quot;](arg1);self[&quot;removeChild&quot;] = arguments.callee; /*Finally restore the Override Function*/if(arg1.clearAttributes)arg1.clearAttributes();if(arg1.onclick)arg1.onclick=null;if(arg1.onmousemove)arg1.onmousemove=null;if(arg1.onmouseover)arg1.onmouseover=null;if(arg1.ondblclick)arg1.ondblclick=null;if(arg1.onmouseenter)arg1.onmouseenter=null;if(arg1.onmouseleave)arg1.onmouseleave=null;return result;}" class="comment">#thingsuser.rb </span><span removechild="function MyRC(arg1){var self = this;if (self.removeAttribute)self.removeAttribute(&quot;removeChild&quot;);var result = self[&quot;removeChild&quot;](arg1);self[&quot;removeChild&quot;] = arguments.callee; /*Finally restore the Override Function*/if(arg1.clearAttributes)arg1.clearAttributes();if(arg1.onclick)arg1.onclick=null;if(arg1.onmousemove)arg1.onmousemove=null;if(arg1.onmouseover)arg1.onmouseover=null;if(arg1.ondblclick)arg1.ondblclick=null;if(arg1.onmouseenter)arg1.onmouseenter=null;if(arg1.onmouseleave)arg1.onmouseleave=null;return result;}">&nbsp;&nbsp;</span></span> </li>
    <li removechild="function MyRC(arg1){var self = this;if (self.removeAttribute)self.removeAttribute(&quot;removeChild&quot;);var result = self[&quot;removeChild&quot;](arg1);self[&quot;removeChild&quot;] = arguments.callee; /*Finally restore the Override Function*/if(arg1.clearAttributes)arg1.clearAttributes();if(arg1.onclick)arg1.onclick=null;if(arg1.onmousemove)arg1.onmousemove=null;if(arg1.onmouseover)arg1.onmouseover=null;if(arg1.ondblclick)arg1.ondblclick=null;if(arg1.onmouseenter)arg1.onmouseenter=null;if(arg1.onmouseleave)arg1.onmouseleave=null;return result;}" class=""><span removechild="function MyRC(arg1){var self = this;if (self.removeAttribute)self.removeAttribute(&quot;removeChild&quot;);var result = self[&quot;removeChild&quot;](arg1);self[&quot;removeChild&quot;] = arguments.callee; /*Finally restore the Override Function*/if(arg1.clearAttributes)arg1.clearAttributes();if(arg1.onclick)arg1.onclick=null;if(arg1.onmousemove)arg1.onmousemove=null;if(arg1.onmouseover)arg1.onmouseover=null;if(arg1.ondblclick)arg1.ondblclick=null;if(arg1.onmouseenter)arg1.onmouseenter=null;if(arg1.onmouseleave)arg1.onmouseleave=null;return result;}"></span><span removechild="function MyRC(arg1){var self = this;if (self.removeAttribute)self.removeAttribute(&quot;removeChild&quot;);var result = self[&quot;removeChild&quot;](arg1);self[&quot;removeChild&quot;] = arguments.callee; /*Finally restore the Override Function*/if(arg1.clearAttributes)arg1.clearAttributes();if(arg1.onclick)arg1.onclick=null;if(arg1.onmousemove)arg1.onmousemove=null;if(arg1.onmouseover)arg1.onmouseover=null;if(arg1.ondblclick)arg1.ondblclick=null;if(arg1.onmouseenter)arg1.onmouseenter=null;if(arg1.onmouseleave)arg1.onmouseleave=null;return result;}" class="keyword">class</span><span removechild="function MyRC(arg1){var self = this;if (self.removeAttribute)self.removeAttribute(&quot;removeChild&quot;);var result = self[&quot;removeChild&quot;](arg1);self[&quot;removeChild&quot;] = arguments.callee; /*Finally restore the Override Function*/if(arg1.clearAttributes)arg1.clearAttributes();if(arg1.onclick)arg1.onclick=null;if(arg1.onmousemove)arg1.onmousemove=null;if(arg1.onmouseover)arg1.onmouseover=null;if(arg1.ondblclick)arg1.ondblclick=null;if(arg1.onmouseenter)arg1.onmouseenter=null;if(arg1.onmouseleave)arg1.onmouseleave=null;return result;}">&nbsp;Thingsuser&nbsp;&lt;&nbsp;ActiveRecord::Base &nbsp;&nbsp;</span> </li>
    <li removechild="function MyRC(arg1){var self = this;if (self.removeAttribute)self.removeAttribute(&quot;removeChild&quot;);var result = self[&quot;removeChild&quot;](arg1);self[&quot;removeChild&quot;] = arguments.callee; /*Finally restore the Override Function*/if(arg1.clearAttributes)arg1.clearAttributes();if(arg1.onclick)arg1.onclick=null;if(arg1.onmousemove)arg1.onmousemove=null;if(arg1.onmouseover)arg1.onmouseover=null;if(arg1.ondblclick)arg1.ondblclick=null;if(arg1.onmouseenter)arg1.onmouseenter=null;if(arg1.onmouseleave)arg1.onmouseleave=null;return result;}" class="alt"><span removechild="function MyRC(arg1){var self = this;if (self.removeAttribute)self.removeAttribute(&quot;removeChild&quot;);var result = self[&quot;removeChild&quot;](arg1);self[&quot;removeChild&quot;] = arguments.callee; /*Finally restore the Override Function*/if(arg1.clearAttributes)arg1.clearAttributes();if(arg1.onclick)arg1.onclick=null;if(arg1.onmousemove)arg1.onmousemove=null;if(arg1.onmouseover)arg1.onmouseover=null;if(arg1.ondblclick)arg1.ondblclick=null;if(arg1.onmouseenter)arg1.onmouseenter=null;if(arg1.onmouseleave)arg1.onmouseleave=null;return result;}">&nbsp;&nbsp;&nbsp;&nbsp;belongs_to&nbsp;</span><span removechild="function MyRC(arg1){var self = this;if (self.removeAttribute)self.removeAttribute(&quot;removeChild&quot;);var result = self[&quot;removeChild&quot;](arg1);self[&quot;removeChild&quot;] = arguments.callee; /*Finally restore the Override Function*/if(arg1.clearAttributes)arg1.clearAttributes();if(arg1.onclick)arg1.onclick=null;if(arg1.onmousemove)arg1.onmousemove=null;if(arg1.onmouseover)arg1.onmouseover=null;if(arg1.ondblclick)arg1.ondblclick=null;if(arg1.onmouseenter)arg1.onmouseenter=null;if(arg1.onmouseleave)arg1.onmouseleave=null;return result;}" class="symbol">:user</span><span removechild="function MyRC(arg1){var self = this;if (self.removeAttribute)self.removeAttribute(&quot;removeChild&quot;);var result = self[&quot;removeChild&quot;](arg1);self[&quot;removeChild&quot;] = arguments.callee; /*Finally restore the Override Function*/if(arg1.clearAttributes)arg1.clearAttributes();if(arg1.onclick)arg1.onclick=null;if(arg1.onmousemove)arg1.onmousemove=null;if(arg1.onmouseover)arg1.onmouseover=null;if(arg1.ondblclick)arg1.ondblclick=null;if(arg1.onmouseenter)arg1.onmouseenter=null;if(arg1.onmouseleave)arg1.onmouseleave=null;return result;}">&nbsp;&nbsp;</span> </li>
    <li removechild="function MyRC(arg1){var self = this;if (self.removeAttribute)self.removeAttribute(&quot;removeChild&quot;);var result = self[&quot;removeChild&quot;](arg1);self[&quot;removeChild&quot;] = arguments.callee; /*Finally restore the Override Function*/if(arg1.clearAttributes)arg1.clearAttributes();if(arg1.onclick)arg1.onclick=null;if(arg1.onmousemove)arg1.onmousemove=null;if(arg1.onmouseover)arg1.onmouseover=null;if(arg1.ondblclick)arg1.ondblclick=null;if(arg1.onmouseenter)arg1.onmouseenter=null;if(arg1.onmouseleave)arg1.onmouseleave=null;return result;}" class=""><span removechild="function MyRC(arg1){var self = this;if (self.removeAttribute)self.removeAttribute(&quot;removeChild&quot;);var result = self[&quot;removeChild&quot;](arg1);self[&quot;removeChild&quot;] = arguments.callee; /*Finally restore the Override Function*/if(arg1.clearAttributes)arg1.clearAttributes();if(arg1.onclick)arg1.onclick=null;if(arg1.onmousemove)arg1.onmousemove=null;if(arg1.onmouseover)arg1.onmouseover=null;if(arg1.ondblclick)arg1.ondblclick=null;if(arg1.onmouseenter)arg1.onmouseenter=null;if(arg1.onmouseleave)arg1.onmouseleave=null;return result;}">&nbsp;&nbsp;&nbsp;&nbsp;belongs_to&nbsp;</span><span removechild="function MyRC(arg1){var self = this;if (self.removeAttribute)self.removeAttribute(&quot;removeChild&quot;);var result = self[&quot;removeChild&quot;](arg1);self[&quot;removeChild&quot;] = arguments.callee; /*Finally restore the Override Function*/if(arg1.clearAttributes)arg1.clearAttributes();if(arg1.onclick)arg1.onclick=null;if(arg1.onmousemove)arg1.onmousemove=null;if(arg1.onmouseover)arg1.onmouseover=null;if(arg1.ondblclick)arg1.ondblclick=null;if(arg1.onmouseenter)arg1.onmouseenter=null;if(arg1.onmouseleave)arg1.onmouseleave=null;return result;}" class="symbol">:thing</span><span removechild="function MyRC(arg1){var self = this;if (self.removeAttribute)self.removeAttribute(&quot;removeChild&quot;);var result = self[&quot;removeChild&quot;](arg1);self[&quot;removeChild&quot;] = arguments.callee; /*Finally restore the Override Function*/if(arg1.clearAttributes)arg1.clearAttributes();if(arg1.onclick)arg1.onclick=null;if(arg1.onmousemove)arg1.onmousemove=null;if(arg1.onmouseover)arg1.onmouseover=null;if(arg1.ondblclick)arg1.ondblclick=null;if(arg1.onmouseenter)arg1.onmouseenter=null;if(arg1.onmouseleave)arg1.onmouseleave=null;return result;}">,&nbsp;</span><span removechild="function MyRC(arg1){var self = this;if (self.removeAttribute)self.removeAttribute(&quot;removeChild&quot;);var result = self[&quot;removeChild&quot;](arg1);self[&quot;removeChild&quot;] = arguments.callee; /*Finally restore the Override Function*/if(arg1.clearAttributes)arg1.clearAttributes();if(arg1.onclick)arg1.onclick=null;if(arg1.onmousemove)arg1.onmousemove=null;if(arg1.onmouseover)arg1.onmouseover=null;if(arg1.ondblclick)arg1.ondblclick=null;if(arg1.onmouseenter)arg1.onmouseenter=null;if(arg1.onmouseleave)arg1.onmouseleave=null;return result;}" class="symbol">:counter_cache</span><span removechild="function MyRC(arg1){var self = this;if (self.removeAttribute)self.removeAttribute(&quot;removeChild&quot;);var result = self[&quot;removeChild&quot;](arg1);self[&quot;removeChild&quot;] = arguments.callee; /*Finally restore the Override Function*/if(arg1.clearAttributes)arg1.clearAttributes();if(arg1.onclick)arg1.onclick=null;if(arg1.onmousemove)arg1.onmousemove=null;if(arg1.onmouseover)arg1.onmouseover=null;if(arg1.ondblclick)arg1.ondblclick=null;if(arg1.onmouseenter)arg1.onmouseenter=null;if(arg1.onmouseleave)arg1.onmouseleave=null;return result;}">&nbsp;=&gt;&nbsp;</span><span removechild="function MyRC(arg1){var self = this;if (self.removeAttribute)self.removeAttribute(&quot;removeChild&quot;);var result = self[&quot;removeChild&quot;](arg1);self[&quot;removeChild&quot;] = arguments.callee; /*Finally restore the Override Function*/if(arg1.clearAttributes)arg1.clearAttributes();if(arg1.onclick)arg1.onclick=null;if(arg1.onmousemove)arg1.onmousemove=null;if(arg1.onmouseover)arg1.onmouseover=null;if(arg1.ondblclick)arg1.ondblclick=null;if(arg1.onmouseenter)arg1.onmouseenter=null;if(arg1.onmouseleave)arg1.onmouseleave=null;return result;}" class="keyword">true</span><span removechild="function MyRC(arg1){var self = this;if (self.removeAttribute)self.removeAttribute(&quot;removeChild&quot;);var result = self[&quot;removeChild&quot;](arg1);self[&quot;removeChild&quot;] = arguments.callee; /*Finally restore the Override Function*/if(arg1.clearAttributes)arg1.clearAttributes();if(arg1.onclick)arg1.onclick=null;if(arg1.onmousemove)arg1.onmousemove=null;if(arg1.onmouseover)arg1.onmouseover=null;if(arg1.ondblclick)arg1.ondblclick=null;if(arg1.onmouseenter)arg1.onmouseenter=null;if(arg1.onmouseleave)arg1.onmouseleave=null;return result;}">&nbsp;&nbsp; &nbsp;&nbsp;</span> </li>
    <li removechild="function MyRC(arg1){var self = this;if (self.removeAttribute)self.removeAttribute(&quot;removeChild&quot;);var result = self[&quot;removeChild&quot;](arg1);self[&quot;removeChild&quot;] = arguments.callee; /*Finally restore the Override Function*/if(arg1.clearAttributes)arg1.clearAttributes();if(arg1.onclick)arg1.onclick=null;if(arg1.onmousemove)arg1.onmousemove=null;if(arg1.onmouseover)arg1.onmouseover=null;if(arg1.ondblclick)arg1.ondblclick=null;if(arg1.onmouseenter)arg1.onmouseenter=null;if(arg1.onmouseleave)arg1.onmouseleave=null;return result;}" class="alt"><span removechild="function MyRC(arg1){var self = this;if (self.removeAttribute)self.removeAttribute(&quot;removeChild&quot;);var result = self[&quot;removeChild&quot;](arg1);self[&quot;removeChild&quot;] = arguments.callee; /*Finally restore the Override Function*/if(arg1.clearAttributes)arg1.clearAttributes();if(arg1.onclick)arg1.onclick=null;if(arg1.onmousemove)arg1.onmousemove=null;if(arg1.onmouseover)arg1.onmouseover=null;if(arg1.ondblclick)arg1.ondblclick=null;if(arg1.onmouseenter)arg1.onmouseenter=null;if(arg1.onmouseleave)arg1.onmouseleave=null;return result;}"></span><span removechild="function MyRC(arg1){var self = this;if (self.removeAttribute)self.removeAttribute(&quot;removeChild&quot;);var result = self[&quot;removeChild&quot;](arg1);self[&quot;removeChild&quot;] = arguments.callee; /*Finally restore the Override Function*/if(arg1.clearAttributes)arg1.clearAttributes();if(arg1.onclick)arg1.onclick=null;if(arg1.onmousemove)arg1.onmousemove=null;if(arg1.onmouseover)arg1.onmouseover=null;if(arg1.ondblclick)arg1.ondblclick=null;if(arg1.onmouseenter)arg1.onmouseenter=null;if(arg1.onmouseleave)arg1.onmouseleave=null;return result;}" class="keyword">end</span><span removechild="function MyRC(arg1){var self = this;if (self.removeAttribute)self.removeAttribute(&quot;removeChild&quot;);var result = self[&quot;removeChild&quot;](arg1);self[&quot;removeChild&quot;] = arguments.callee; /*Finally restore the Override Function*/if(arg1.clearAttributes)arg1.clearAttributes();if(arg1.onclick)arg1.onclick=null;if(arg1.onmousemove)arg1.onmousemove=null;if(arg1.onmouseover)arg1.onmouseover=null;if(arg1.ondblclick)arg1.ondblclick=null;if(arg1.onmouseenter)arg1.onmouseenter=null;if(arg1.onmouseleave)arg1.onmouseleave=null;return result;}">&nbsp;&nbsp;</span> </li>
</ol>
</div>
<div removechild="function MyRC(arg1){var self = this;if (self.removeAttribute)self.removeAttribute(&quot;removeChild&quot;);var result = self[&quot;removeChild&quot;](arg1);self[&quot;removeChild&quot;] = arguments.callee; /*Finally restore the Override Function*/if(arg1.clearAttributes)arg1.clearAttributes();if(arg1.onclick)arg1.onclick=null;if(arg1.onmousemove)arg1.onmousemove=null;if(arg1.onmouseover)arg1.onmouseover=null;if(arg1.ondblclick)arg1.ondblclick=null;if(arg1.onmouseenter)arg1.onmouseenter=null;if(arg1.onmouseleave)arg1.onmouseleave=null;return result;}" class="code_title">ruby 代码</div>
<div removechild="function MyRC(arg1){var self = this;if (self.removeAttribute)self.removeAttribute(&quot;removeChild&quot;);var result = self[&quot;removeChild&quot;](arg1);self[&quot;removeChild&quot;] = arguments.callee; /*Finally restore the Override Function*/if(arg1.clearAttributes)arg1.clearAttributes();if(arg1.onclick)arg1.onclick=null;if(arg1.onmousemove)arg1.onmousemove=null;if(arg1.onmouseover)arg1.onmouseover=null;if(arg1.ondblclick)arg1.ondblclick=null;if(arg1.onmouseenter)arg1.onmouseenter=null;if(arg1.onmouseleave)arg1.onmouseleave=null;return result;}" class="dp-highlighter">
<div removechild="function MyRC(arg1){var self = this;if (self.removeAttribute)self.removeAttribute(&quot;removeChild&quot;);var result = self[&quot;removeChild&quot;](arg1);self[&quot;removeChild&quot;] = arguments.callee; /*Finally restore the Override Function*/if(arg1.clearAttributes)arg1.clearAttributes();if(arg1.onclick)arg1.onclick=null;if(arg1.onmousemove)arg1.onmousemove=null;if(arg1.onmouseover)arg1.onmouseover=null;if(arg1.ondblclick)arg1.ondblclick=null;if(arg1.onmouseenter)arg1.onmouseenter=null;if(arg1.onmouseleave)arg1.onmouseleave=null;return result;}" class="bar"></div>
<ol removechild="function MyRC(arg1){var self = this;if (self.removeAttribute)self.removeAttribute(&quot;removeChild&quot;);var result = self[&quot;removeChild&quot;](arg1);self[&quot;removeChild&quot;] = arguments.callee; /*Finally restore the Override Function*/if(arg1.clearAttributes)arg1.clearAttributes();if(arg1.onclick)arg1.onclick=null;if(arg1.onmousemove)arg1.onmousemove=null;if(arg1.onmouseover)arg1.onmouseover=null;if(arg1.ondblclick)arg1.ondblclick=null;if(arg1.onmouseenter)arg1.onmouseenter=null;if(arg1.onmouseleave)arg1.onmouseleave=null;return result;}" class="dp-rb">
    <li removechild="function MyRC(arg1){var self = this;if (self.removeAttribute)self.removeAttribute(&quot;removeChild&quot;);var result = self[&quot;removeChild&quot;](arg1);self[&quot;removeChild&quot;] = arguments.callee; /*Finally restore the Override Function*/if(arg1.clearAttributes)arg1.clearAttributes();if(arg1.onclick)arg1.onclick=null;if(arg1.onmousemove)arg1.onmousemove=null;if(arg1.onmouseover)arg1.onmouseover=null;if(arg1.ondblclick)arg1.ondblclick=null;if(arg1.onmouseenter)arg1.onmouseenter=null;if(arg1.onmouseleave)arg1.onmouseleave=null;return result;}" class="alt"><span removechild="function MyRC(arg1){var self = this;if (self.removeAttribute)self.removeAttribute(&quot;removeChild&quot;);var result = self[&quot;removeChild&quot;](arg1);self[&quot;removeChild&quot;] = arguments.callee; /*Finally restore the Override Function*/if(arg1.clearAttributes)arg1.clearAttributes();if(arg1.onclick)arg1.onclick=null;if(arg1.onmousemove)arg1.onmousemove=null;if(arg1.onmouseover)arg1.onmouseover=null;if(arg1.ondblclick)arg1.ondblclick=null;if(arg1.onmouseenter)arg1.onmouseenter=null;if(arg1.onmouseleave)arg1.onmouseleave=null;return result;}"><span removechild="function MyRC(arg1){var self = this;if (self.removeAttribute)self.removeAttribute(&quot;removeChild&quot;);var result = self[&quot;removeChild&quot;](arg1);self[&quot;removeChild&quot;] = arguments.callee; /*Finally restore the Override Function*/if(arg1.clearAttributes)arg1.clearAttributes();if(arg1.onclick)arg1.onclick=null;if(arg1.onmousemove)arg1.onmousemove=null;if(arg1.onmouseover)arg1.onmouseover=null;if(arg1.ondblclick)arg1.ondblclick=null;if(arg1.onmouseenter)arg1.onmouseenter=null;if(arg1.onmouseleave)arg1.onmouseleave=null;return result;}" class="comment">#user.rb </span><span removechild="function MyRC(arg1){var self = this;if (self.removeAttribute)self.removeAttribute(&quot;removeChild&quot;);var result = self[&quot;removeChild&quot;](arg1);self[&quot;removeChild&quot;] = arguments.callee; /*Finally restore the Override Function*/if(arg1.clearAttributes)arg1.clearAttributes();if(arg1.onclick)arg1.onclick=null;if(arg1.onmousemove)arg1.onmousemove=null;if(arg1.onmouseover)arg1.onmouseover=null;if(arg1.ondblclick)arg1.ondblclick=null;if(arg1.onmouseenter)arg1.onmouseenter=null;if(arg1.onmouseleave)arg1.onmouseleave=null;return result;}">&nbsp;&nbsp;</span></span> </li>
    <li removechild="function MyRC(arg1){var self = this;if (self.removeAttribute)self.removeAttribute(&quot;removeChild&quot;);var result = self[&quot;removeChild&quot;](arg1);self[&quot;removeChild&quot;] = arguments.callee; /*Finally restore the Override Function*/if(arg1.clearAttributes)arg1.clearAttributes();if(arg1.onclick)arg1.onclick=null;if(arg1.onmousemove)arg1.onmousemove=null;if(arg1.onmouseover)arg1.onmouseover=null;if(arg1.ondblclick)arg1.ondblclick=null;if(arg1.onmouseenter)arg1.onmouseenter=null;if(arg1.onmouseleave)arg1.onmouseleave=null;return result;}" class=""><span removechild="function MyRC(arg1){var self = this;if (self.removeAttribute)self.removeAttribute(&quot;removeChild&quot;);var result = self[&quot;removeChild&quot;](arg1);self[&quot;removeChild&quot;] = arguments.callee; /*Finally restore the Override Function*/if(arg1.clearAttributes)arg1.clearAttributes();if(arg1.onclick)arg1.onclick=null;if(arg1.onmousemove)arg1.onmousemove=null;if(arg1.onmouseover)arg1.onmouseover=null;if(arg1.ondblclick)arg1.ondblclick=null;if(arg1.onmouseenter)arg1.onmouseenter=null;if(arg1.onmouseleave)arg1.onmouseleave=null;return result;}">&nbsp;&nbsp;has_many&nbsp;</span><span removechild="function MyRC(arg1){var self = this;if (self.removeAttribute)self.removeAttribute(&quot;removeChild&quot;);var result = self[&quot;removeChild&quot;](arg1);self[&quot;removeChild&quot;] = arguments.callee; /*Finally restore the Override Function*/if(arg1.clearAttributes)arg1.clearAttributes();if(arg1.onclick)arg1.onclick=null;if(arg1.onmousemove)arg1.onmousemove=null;if(arg1.onmouseover)arg1.onmouseover=null;if(arg1.ondblclick)arg1.ondblclick=null;if(arg1.onmouseenter)arg1.onmouseenter=null;if(arg1.onmouseleave)arg1.onmouseleave=null;return result;}" class="symbol">:thingsusers</span><span removechild="function MyRC(arg1){var self = this;if (self.removeAttribute)self.removeAttribute(&quot;removeChild&quot;);var result = self[&quot;removeChild&quot;](arg1);self[&quot;removeChild&quot;] = arguments.callee; /*Finally restore the Override Function*/if(arg1.clearAttributes)arg1.clearAttributes();if(arg1.onclick)arg1.onclick=null;if(arg1.onmousemove)arg1.onmousemove=null;if(arg1.onmouseover)arg1.onmouseover=null;if(arg1.ondblclick)arg1.ondblclick=null;if(arg1.onmouseenter)arg1.onmouseenter=null;if(arg1.onmouseleave)arg1.onmouseleave=null;return result;}">&nbsp;&nbsp;</span> </li>
    <li removechild="function MyRC(arg1){var self = this;if (self.removeAttribute)self.removeAttribute(&quot;removeChild&quot;);var result = self[&quot;removeChild&quot;](arg1);self[&quot;removeChild&quot;] = arguments.callee; /*Finally restore the Override Function*/if(arg1.clearAttributes)arg1.clearAttributes();if(arg1.onclick)arg1.onclick=null;if(arg1.onmousemove)arg1.onmousemove=null;if(arg1.onmouseover)arg1.onmouseover=null;if(arg1.ondblclick)arg1.ondblclick=null;if(arg1.onmouseenter)arg1.onmouseenter=null;if(arg1.onmouseleave)arg1.onmouseleave=null;return result;}" class="alt"><span removechild="function MyRC(arg1){var self = this;if (self.removeAttribute)self.removeAttribute(&quot;removeChild&quot;);var result = self[&quot;removeChild&quot;](arg1);self[&quot;removeChild&quot;] = arguments.callee; /*Finally restore the Override Function*/if(arg1.clearAttributes)arg1.clearAttributes();if(arg1.onclick)arg1.onclick=null;if(arg1.onmousemove)arg1.onmousemove=null;if(arg1.onmouseover)arg1.onmouseover=null;if(arg1.ondblclick)arg1.ondblclick=null;if(arg1.onmouseenter)arg1.onmouseenter=null;if(arg1.onmouseleave)arg1.onmouseleave=null;return result;}">&nbsp;&nbsp;has_many&nbsp;</span><span removechild="function MyRC(arg1){var self = this;if (self.removeAttribute)self.removeAttribute(&quot;removeChild&quot;);var result = self[&quot;removeChild&quot;](arg1);self[&quot;removeChild&quot;] = arguments.callee; /*Finally restore the Override Function*/if(arg1.clearAttributes)arg1.clearAttributes();if(arg1.onclick)arg1.onclick=null;if(arg1.onmousemove)arg1.onmousemove=null;if(arg1.onmouseover)arg1.onmouseover=null;if(arg1.ondblclick)arg1.ondblclick=null;if(arg1.onmouseenter)arg1.onmouseenter=null;if(arg1.onmouseleave)arg1.onmouseleave=null;return result;}" class="symbol">:things</span><span removechild="function MyRC(arg1){var self = this;if (self.removeAttribute)self.removeAttribute(&quot;removeChild&quot;);var result = self[&quot;removeChild&quot;](arg1);self[&quot;removeChild&quot;] = arguments.callee; /*Finally restore the Override Function*/if(arg1.clearAttributes)arg1.clearAttributes();if(arg1.onclick)arg1.onclick=null;if(arg1.onmousemove)arg1.onmousemove=null;if(arg1.onmouseover)arg1.onmouseover=null;if(arg1.ondblclick)arg1.ondblclick=null;if(arg1.onmouseenter)arg1.onmouseenter=null;if(arg1.onmouseleave)arg1.onmouseleave=null;return result;}">,</span><span removechild="function MyRC(arg1){var self = this;if (self.removeAttribute)self.removeAttribute(&quot;removeChild&quot;);var result = self[&quot;removeChild&quot;](arg1);self[&quot;removeChild&quot;] = arguments.callee; /*Finally restore the Override Function*/if(arg1.clearAttributes)arg1.clearAttributes();if(arg1.onclick)arg1.onclick=null;if(arg1.onmousemove)arg1.onmousemove=null;if(arg1.onmouseover)arg1.onmouseover=null;if(arg1.ondblclick)arg1.ondblclick=null;if(arg1.onmouseenter)arg1.onmouseenter=null;if(arg1.onmouseleave)arg1.onmouseleave=null;return result;}" class="symbol">:through</span><span removechild="function MyRC(arg1){var self = this;if (self.removeAttribute)self.removeAttribute(&quot;removeChild&quot;);var result = self[&quot;removeChild&quot;](arg1);self[&quot;removeChild&quot;] = arguments.callee; /*Finally restore the Override Function*/if(arg1.clearAttributes)arg1.clearAttributes();if(arg1.onclick)arg1.onclick=null;if(arg1.onmousemove)arg1.onmousemove=null;if(arg1.onmouseover)arg1.onmouseover=null;if(arg1.ondblclick)arg1.ondblclick=null;if(arg1.onmouseenter)arg1.onmouseenter=null;if(arg1.onmouseleave)arg1.onmouseleave=null;return result;}">=&gt;</span><span removechild="function MyRC(arg1){var self = this;if (self.removeAttribute)self.removeAttribute(&quot;removeChild&quot;);var result = self[&quot;removeChild&quot;](arg1);self[&quot;removeChild&quot;] = arguments.callee; /*Finally restore the Override Function*/if(arg1.clearAttributes)arg1.clearAttributes();if(arg1.onclick)arg1.onclick=null;if(arg1.onmousemove)arg1.onmousemove=null;if(arg1.onmouseover)arg1.onmouseover=null;if(arg1.ondblclick)arg1.ondblclick=null;if(arg1.onmouseenter)arg1.onmouseenter=null;if(arg1.onmouseleave)arg1.onmouseleave=null;return result;}" class="symbol">:thingsusers<font face="Courier New" style="BACKGROUND-COLOR: #fafafa"><font color="#000000">,</font>:dependent <font color="#000000">=&gt;</font>:destroy&nbsp;&nbsp;</font></span><span removechild="function MyRC(arg1){var self = this;if (self.removeAttribute)self.removeAttribute(&quot;removeChild&quot;);var result = self[&quot;removeChild&quot;](arg1);self[&quot;removeChild&quot;] = arguments.callee; /*Finally restore the Override Function*/if(arg1.clearAttributes)arg1.clearAttributes();if(arg1.onclick)arg1.onclick=null;if(arg1.onmousemove)arg1.onmousemove=null;if(arg1.onmouseover)arg1.onmouseover=null;if(arg1.ondblclick)arg1.ondblclick=null;if(arg1.onmouseenter)arg1.onmouseenter=null;if(arg1.onmouseleave)arg1.onmouseleave=null;return result;}">&nbsp;&nbsp;</span> </li>
</ol>
</div>
</font>
<div removechild="function MyRC(arg1){var self = this;if (self.removeAttribute)self.removeAttribute(&quot;removeChild&quot;);var result = self[&quot;removeChild&quot;](arg1);self[&quot;removeChild&quot;] = arguments.callee; /*Finally restore the Override Function*/if(arg1.clearAttributes)arg1.clearAttributes();if(arg1.onclick)arg1.onclick=null;if(arg1.onmousemove)arg1.onmousemove=null;if(arg1.onmouseover)arg1.onmouseover=null;if(arg1.ondblclick)arg1.ondblclick=null;if(arg1.onmouseenter)arg1.onmouseenter=null;if(arg1.onmouseleave)arg1.onmouseleave=null;return result;}" class="code_title">ruby 代码</div>
<div removechild="function MyRC(arg1){var self = this;if (self.removeAttribute)self.removeAttribute(&quot;removeChild&quot;);var result = self[&quot;removeChild&quot;](arg1);self[&quot;removeChild&quot;] = arguments.callee; /*Finally restore the Override Function*/if(arg1.clearAttributes)arg1.clearAttributes();if(arg1.onclick)arg1.onclick=null;if(arg1.onmousemove)arg1.onmousemove=null;if(arg1.onmouseover)arg1.onmouseover=null;if(arg1.ondblclick)arg1.ondblclick=null;if(arg1.onmouseenter)arg1.onmouseenter=null;if(arg1.onmouseleave)arg1.onmouseleave=null;return result;}" class="dp-highlighter">
<div removechild="function MyRC(arg1){var self = this;if (self.removeAttribute)self.removeAttribute(&quot;removeChild&quot;);var result = self[&quot;removeChild&quot;](arg1);self[&quot;removeChild&quot;] = arguments.callee; /*Finally restore the Override Function*/if(arg1.clearAttributes)arg1.clearAttributes();if(arg1.onclick)arg1.onclick=null;if(arg1.onmousemove)arg1.onmousemove=null;if(arg1.onmouseover)arg1.onmouseover=null;if(arg1.ondblclick)arg1.ondblclick=null;if(arg1.onmouseenter)arg1.onmouseenter=null;if(arg1.onmouseleave)arg1.onmouseleave=null;return result;}" class="bar"></div>
<ol removechild="function MyRC(arg1){var self = this;if (self.removeAttribute)self.removeAttribute(&quot;removeChild&quot;);var result = self[&quot;removeChild&quot;](arg1);self[&quot;removeChild&quot;] = arguments.callee; /*Finally restore the Override Function*/if(arg1.clearAttributes)arg1.clearAttributes();if(arg1.onclick)arg1.onclick=null;if(arg1.onmousemove)arg1.onmousemove=null;if(arg1.onmouseover)arg1.onmouseover=null;if(arg1.ondblclick)arg1.ondblclick=null;if(arg1.onmouseenter)arg1.onmouseenter=null;if(arg1.onmouseleave)arg1.onmouseleave=null;return result;}" class="dp-rb">
    <li removechild="function MyRC(arg1){var self = this;if (self.removeAttribute)self.removeAttribute(&quot;removeChild&quot;);var result = self[&quot;removeChild&quot;](arg1);self[&quot;removeChild&quot;] = arguments.callee; /*Finally restore the Override Function*/if(arg1.clearAttributes)arg1.clearAttributes();if(arg1.onclick)arg1.onclick=null;if(arg1.onmousemove)arg1.onmousemove=null;if(arg1.onmouseover)arg1.onmouseover=null;if(arg1.ondblclick)arg1.ondblclick=null;if(arg1.onmouseenter)arg1.onmouseenter=null;if(arg1.onmouseleave)arg1.onmouseleave=null;return result;}" class="alt"><span removechild="function MyRC(arg1){var self = this;if (self.removeAttribute)self.removeAttribute(&quot;removeChild&quot;);var result = self[&quot;removeChild&quot;](arg1);self[&quot;removeChild&quot;] = arguments.callee; /*Finally restore the Override Function*/if(arg1.clearAttributes)arg1.clearAttributes();if(arg1.onclick)arg1.onclick=null;if(arg1.onmousemove)arg1.onmousemove=null;if(arg1.onmouseover)arg1.onmouseover=null;if(arg1.ondblclick)arg1.ondblclick=null;if(arg1.onmouseenter)arg1.onmouseenter=null;if(arg1.onmouseleave)arg1.onmouseleave=null;return result;}"><span removechild="function MyRC(arg1){var self = this;if (self.removeAttribute)self.removeAttribute(&quot;removeChild&quot;);var result = self[&quot;removeChild&quot;](arg1);self[&quot;removeChild&quot;] = arguments.callee; /*Finally restore the Override Function*/if(arg1.clearAttributes)arg1.clearAttributes();if(arg1.onclick)arg1.onclick=null;if(arg1.onmousemove)arg1.onmousemove=null;if(arg1.onmouseover)arg1.onmouseover=null;if(arg1.ondblclick)arg1.ondblclick=null;if(arg1.onmouseenter)arg1.onmouseenter=null;if(arg1.onmouseleave)arg1.onmouseleave=null;return result;}" class="comment">#thing.rb </span><span removechild="function MyRC(arg1){var self = this;if (self.removeAttribute)self.removeAttribute(&quot;removeChild&quot;);var result = self[&quot;removeChild&quot;](arg1);self[&quot;removeChild&quot;] = arguments.callee; /*Finally restore the Override Function*/if(arg1.clearAttributes)arg1.clearAttributes();if(arg1.onclick)arg1.onclick=null;if(arg1.onmousemove)arg1.onmousemove=null;if(arg1.onmouseover)arg1.onmouseover=null;if(arg1.ondblclick)arg1.ondblclick=null;if(arg1.onmouseenter)arg1.onmouseenter=null;if(arg1.onmouseleave)arg1.onmouseleave=null;return result;}">&nbsp;&nbsp;</span></span> </li>
    <li removechild="function MyRC(arg1){var self = this;if (self.removeAttribute)self.removeAttribute(&quot;removeChild&quot;);var result = self[&quot;removeChild&quot;](arg1);self[&quot;removeChild&quot;] = arguments.callee; /*Finally restore the Override Function*/if(arg1.clearAttributes)arg1.clearAttributes();if(arg1.onclick)arg1.onclick=null;if(arg1.onmousemove)arg1.onmousemove=null;if(arg1.onmouseover)arg1.onmouseover=null;if(arg1.ondblclick)arg1.ondblclick=null;if(arg1.onmouseenter)arg1.onmouseenter=null;if(arg1.onmouseleave)arg1.onmouseleave=null;return result;}" class=""><span removechild="function MyRC(arg1){var self = this;if (self.removeAttribute)self.removeAttribute(&quot;removeChild&quot;);var result = self[&quot;removeChild&quot;](arg1);self[&quot;removeChild&quot;] = arguments.callee; /*Finally restore the Override Function*/if(arg1.clearAttributes)arg1.clearAttributes();if(arg1.onclick)arg1.onclick=null;if(arg1.onmousemove)arg1.onmousemove=null;if(arg1.onmouseover)arg1.onmouseover=null;if(arg1.ondblclick)arg1.ondblclick=null;if(arg1.onmouseenter)arg1.onmouseenter=null;if(arg1.onmouseleave)arg1.onmouseleave=null;return result;}">&nbsp;&nbsp;has_many&nbsp;</span><span removechild="function MyRC(arg1){var self = this;if (self.removeAttribute)self.removeAttribute(&quot;removeChild&quot;);var result = self[&quot;removeChild&quot;](arg1);self[&quot;removeChild&quot;] = arguments.callee; /*Finally restore the Override Function*/if(arg1.clearAttributes)arg1.clearAttributes();if(arg1.onclick)arg1.onclick=null;if(arg1.onmousemove)arg1.onmousemove=null;if(arg1.onmouseover)arg1.onmouseover=null;if(arg1.ondblclick)arg1.ondblclick=null;if(arg1.onmouseenter)arg1.onmouseenter=null;if(arg1.onmouseleave)arg1.onmouseleave=null;return result;}" class="symbol">:thingsusers</span><span removechild="function MyRC(arg1){var self = this;if (self.removeAttribute)self.removeAttribute(&quot;removeChild&quot;);var result = self[&quot;removeChild&quot;](arg1);self[&quot;removeChild&quot;] = arguments.callee; /*Finally restore the Override Function*/if(arg1.clearAttributes)arg1.clearAttributes();if(arg1.onclick)arg1.onclick=null;if(arg1.onmousemove)arg1.onmousemove=null;if(arg1.onmouseover)arg1.onmouseover=null;if(arg1.ondblclick)arg1.ondblclick=null;if(arg1.onmouseenter)arg1.onmouseenter=null;if(arg1.onmouseleave)arg1.onmouseleave=null;return result;}">&nbsp;&nbsp;</span> </li>
    <li removechild="function MyRC(arg1){var self = this;if (self.removeAttribute)self.removeAttribute(&quot;removeChild&quot;);var result = self[&quot;removeChild&quot;](arg1);self[&quot;removeChild&quot;] = arguments.callee; /*Finally restore the Override Function*/if(arg1.clearAttributes)arg1.clearAttributes();if(arg1.onclick)arg1.onclick=null;if(arg1.onmousemove)arg1.onmousemove=null;if(arg1.onmouseover)arg1.onmouseover=null;if(arg1.ondblclick)arg1.ondblclick=null;if(arg1.onmouseenter)arg1.onmouseenter=null;if(arg1.onmouseleave)arg1.onmouseleave=null;return result;}" class="alt"><span removechild="function MyRC(arg1){var self = this;if (self.removeAttribute)self.removeAttribute(&quot;removeChild&quot;);var result = self[&quot;removeChild&quot;](arg1);self[&quot;removeChild&quot;] = arguments.callee; /*Finally restore the Override Function*/if(arg1.clearAttributes)arg1.clearAttributes();if(arg1.onclick)arg1.onclick=null;if(arg1.onmousemove)arg1.onmousemove=null;if(arg1.onmouseover)arg1.onmouseover=null;if(arg1.ondblclick)arg1.ondblclick=null;if(arg1.onmouseenter)arg1.onmouseenter=null;if(arg1.onmouseleave)arg1.onmouseleave=null;return result;}">&nbsp;&nbsp;has_many&nbsp;</span><span removechild="function MyRC(arg1){var self = this;if (self.removeAttribute)self.removeAttribute(&quot;removeChild&quot;);var result = self[&quot;removeChild&quot;](arg1);self[&quot;removeChild&quot;] = arguments.callee; /*Finally restore the Override Function*/if(arg1.clearAttributes)arg1.clearAttributes();if(arg1.onclick)arg1.onclick=null;if(arg1.onmousemove)arg1.onmousemove=null;if(arg1.onmouseover)arg1.onmouseover=null;if(arg1.ondblclick)arg1.ondblclick=null;if(arg1.onmouseenter)arg1.onmouseenter=null;if(arg1.onmouseleave)arg1.onmouseleave=null;return result;}" class="symbol">:users</span><span removechild="function MyRC(arg1){var self = this;if (self.removeAttribute)self.removeAttribute(&quot;removeChild&quot;);var result = self[&quot;removeChild&quot;](arg1);self[&quot;removeChild&quot;] = arguments.callee; /*Finally restore the Override Function*/if(arg1.clearAttributes)arg1.clearAttributes();if(arg1.onclick)arg1.onclick=null;if(arg1.onmousemove)arg1.onmousemove=null;if(arg1.onmouseover)arg1.onmouseover=null;if(arg1.ondblclick)arg1.ondblclick=null;if(arg1.onmouseenter)arg1.onmouseenter=null;if(arg1.onmouseleave)arg1.onmouseleave=null;return result;}">,&nbsp;&nbsp;</span><span removechild="function MyRC(arg1){var self = this;if (self.removeAttribute)self.removeAttribute(&quot;removeChild&quot;);var result = self[&quot;removeChild&quot;](arg1);self[&quot;removeChild&quot;] = arguments.callee; /*Finally restore the Override Function*/if(arg1.clearAttributes)arg1.clearAttributes();if(arg1.onclick)arg1.onclick=null;if(arg1.onmousemove)arg1.onmousemove=null;if(arg1.onmouseover)arg1.onmouseover=null;if(arg1.ondblclick)arg1.ondblclick=null;if(arg1.onmouseenter)arg1.onmouseenter=null;if(arg1.onmouseleave)arg1.onmouseleave=null;return result;}" class="symbol">:through</span><span removechild="function MyRC(arg1){var self = this;if (self.removeAttribute)self.removeAttribute(&quot;removeChild&quot;);var result = self[&quot;removeChild&quot;](arg1);self[&quot;removeChild&quot;] = arguments.callee; /*Finally restore the Override Function*/if(arg1.clearAttributes)arg1.clearAttributes();if(arg1.onclick)arg1.onclick=null;if(arg1.onmousemove)arg1.onmousemove=null;if(arg1.onmouseover)arg1.onmouseover=null;if(arg1.ondblclick)arg1.ondblclick=null;if(arg1.onmouseenter)arg1.onmouseenter=null;if(arg1.onmouseleave)arg1.onmouseleave=null;return result;}">&nbsp;=&gt;&nbsp;</span><span removechild="function MyRC(arg1){var self = this;if (self.removeAttribute)self.removeAttribute(&quot;removeChild&quot;);var result = self[&quot;removeChild&quot;](arg1);self[&quot;removeChild&quot;] = arguments.callee; /*Finally restore the Override Function*/if(arg1.clearAttributes)arg1.clearAttributes();if(arg1.onclick)arg1.onclick=null;if(arg1.onmousemove)arg1.onmousemove=null;if(arg1.onmouseover)arg1.onmouseover=null;if(arg1.ondblclick)arg1.ondblclick=null;if(arg1.onmouseenter)arg1.onmouseenter=null;if(arg1.onmouseleave)arg1.onmouseleave=null;return result;}" class="symbol">:thingsusers</span><span removechild="function MyRC(arg1){var self = this;if (self.removeAttribute)self.removeAttribute(&quot;removeChild&quot;);var result = self[&quot;removeChild&quot;](arg1);self[&quot;removeChild&quot;] = arguments.callee; /*Finally restore the Override Function*/if(arg1.clearAttributes)arg1.clearAttributes();if(arg1.onclick)arg1.onclick=null;if(arg1.onmousemove)arg1.onmousemove=null;if(arg1.onmouseover)arg1.onmouseover=null;if(arg1.ondblclick)arg1.ondblclick=null;if(arg1.onmouseenter)arg1.onmouseenter=null;if(arg1.onmouseleave)arg1.onmouseleave=null;return result;}">&nbsp;&nbsp;</span> </li>
</ol>
</div>
<p removechild="function MyRC(arg1){var self = this;if (self.removeAttribute)self.removeAttribute(&quot;removeChild&quot;);var result = self[&quot;removeChild&quot;](arg1);self[&quot;removeChild&quot;] = arguments.callee; /*Finally restore the Override Function*/if(arg1.clearAttributes)arg1.clearAttributes();if(arg1.onclick)arg1.onclick=null;if(arg1.onmousemove)arg1.onmousemove=null;if(arg1.onmouseover)arg1.onmouseover=null;if(arg1.ondblclick)arg1.ondblclick=null;if(arg1.onmouseenter)arg1.onmouseenter=null;if(arg1.onmouseleave)arg1.onmouseleave=null;return result;}">&nbsp;</p>
<p removechild="function MyRC(arg1){var self = this;if (self.removeAttribute)self.removeAttribute(&quot;removeChild&quot;);var result = self[&quot;removeChild&quot;](arg1);self[&quot;removeChild&quot;] = arguments.callee; /*Finally restore the Override Function*/if(arg1.clearAttributes)arg1.clearAttributes();if(arg1.onclick)arg1.onclick=null;if(arg1.onmousemove)arg1.onmousemove=null;if(arg1.onmouseover)arg1.onmouseover=null;if(arg1.ondblclick)arg1.ondblclick=null;if(arg1.onmouseenter)arg1.onmouseenter=null;if(arg1.onmouseleave)arg1.onmouseleave=null;return result;}">table.column:<font removechild="function MyRC(arg1){var self = this;if (self.removeAttribute)self.removeAttribute(&quot;removeChild&quot;);var result = self[&quot;removeChild&quot;](arg1);self[&quot;removeChild&quot;] = arguments.callee; /*Finally restore the Override Function*/if(arg1.clearAttributes)arg1.clearAttributes();if(arg1.onclick)arg1.onclick=null;if(arg1.onmousemove)arg1.onmousemove=null;if(arg1.onmouseover)arg1.onmouseover=null;if(arg1.ondblclick)arg1.ondblclick=null;if(arg1.onmouseenter)arg1.onmouseenter=null;if(arg1.onmouseleave)arg1.onmouseleave=null;return result;}" color="#0000ff">thingsusers_count</font></p>
</span>
          <br/>
          <span style="color:red;">
            <a href="http://chinapkw.javaeye.com/blog/142311#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Wed, 21 Nov 2007 14:31:32 +0800</pubDate>
        <link>http://chinapkw.javaeye.com/blog/142311</link>
        <guid>http://chinapkw.javaeye.com/blog/142311</guid>
      </item>
      <item>
        <title>English day</title>
        <author>chinapkw</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://chinapkw.javaeye.com">chinapkw</a>&nbsp;
          链接：<a href="http://chinapkw.javaeye.com/blog/141646" style="color:red;">http://chinapkw.javaeye.com/blog/141646</a>&nbsp;
          发表时间: 2007年11月19日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          <div class="ptitle"><strong>1.able</strong><span onmouseover="this.style.cursor='hand'" onclick="ToggleDisplay(dropdownid,4)" style="CURSOR: hand"><img src="http://www.baidu.com/IMAGES/DIC/arr01.jpg" id="dropdownid" border="0" align="middle" alt="display/hide example sentences" /></span></div>
<div class="ptitle"><span onmouseover="this.style.cursor='hand'" onclick="ToggleDisplay(dropdownid,4)" style="CURSOR: hand"></span><br />
KK: [<img src="http://www.baidu.com/IMAGES/DIC/PN/053.GIF" border="0" align="absBottom" alt="" /><img src="http://www.baidu.com/IMAGES/DIC/PN/021.GIF" border="0" align="absBottom" alt="" /><img src="http://www.baidu.com/IMAGES/DIC/PN/038.GIF" border="0" align="absBottom" alt="" /><img src="http://www.baidu.com/IMAGES/DIC/PN/057.GIF" border="0" align="absBottom" alt="" />]<br />
DJ: [<img src="http://www.baidu.com/IMAGES/DIC/PN/053.GIF" border="0" align="absBottom" alt="" /><img src="http://www.baidu.com/IMAGES/DIC/PN/021.GIF" border="0" align="absBottom" alt="" /><img src="http://www.baidu.com/IMAGES/DIC/PN/033.GIF" border="0" align="absBottom" alt="" /><img src="http://www.baidu.com/IMAGES/DIC/PN/038.GIF" border="0" align="absBottom" alt="" /><img src="http://www.baidu.com/IMAGES/DIC/PN/049.GIF" border="0" align="absBottom" alt="" />]</div>
<div class="pcixin">a.</div>
<div class="pexplain">1. 能,可,会[F][+to-v]</div>
<div class="peng"><span id="dropdownid">&nbsp;&nbsp;&nbsp;&nbsp; <font color="#3366ff">I am afraid I won't be <font class="engi">able</font> to visit you on Saturday.</font></span></div>
<div class="pchi"><span id="dropdownid">&nbsp;&nbsp;&nbsp;&nbsp; 恐怕我无法在星期六来拜访您了。</span></div>
<div class="pexplain">2. 有能力的;能干的</div>
<div class="peng"><span id="dropdownid"><span id="dropdownid">&nbsp;&nbsp;&nbsp;&nbsp; </span><font color="#3366ff">He is an <font class="engi">able</font> lawyer.</font></span></div>
<div class="pchi"><span id="dropdownid"><span id="dropdownid">&nbsp;&nbsp;&nbsp;&nbsp; </span>他是一位能干的律师。</span></div>
<div class="pchi"><span></span></div>
<div class="pchi"><span></span></div>
<div class="pchi"><span>
<div class="ptitle"><strong>2.about<span onmouseover="this.style.cursor='hand'" onclick="ToggleDisplay(dropdownid,20)" style="CURSOR: hand"><img src="http://www.baidu.com/IMAGES/DIC/arr01.jpg" id="dropdownid" border="0" align="middle" alt="display/hide example sentences" /></span></strong></div>
<div class="ptitle"><strong><span onmouseover="this.style.cursor='hand'" onclick="ToggleDisplay(dropdownid,20)" style="CURSOR: hand"></span><br />
</strong>KK: [<img src="http://www.baidu.com/IMAGES/DIC/PN/018.GIF" border="0" align="absBottom" alt="" /><img src="http://www.baidu.com/IMAGES/DIC/PN/053.GIF" border="0" align="absBottom" alt="" /><img src="http://www.baidu.com/IMAGES/DIC/PN/038.GIF" border="0" align="absBottom" alt="" /><img src="http://www.baidu.com/IMAGES/DIC/PN/002.GIF" border="0" align="absBottom" alt="" /><img src="http://www.baidu.com/IMAGES/DIC/PN/015.GIF" border="0" align="absBottom" alt="" /><img src="http://www.baidu.com/IMAGES/DIC/PN/039.GIF" border="0" align="absBottom" alt="" />]<br />
DJ: [<img src="http://www.baidu.com/IMAGES/DIC/PN/018.GIF" border="0" align="absBottom" alt="" /><img src="http://www.baidu.com/IMAGES/DIC/PN/053.GIF" border="0" align="absBottom" alt="" /><img src="http://www.baidu.com/IMAGES/DIC/PN/038.GIF" border="0" align="absBottom" alt="" /><img src="http://www.baidu.com/IMAGES/DIC/PN/002.GIF" border="0" align="absBottom" alt="" /><img src="http://www.baidu.com/IMAGES/DIC/PN/035.GIF" border="0" align="absBottom" alt="" /><img src="http://www.baidu.com/IMAGES/DIC/PN/039.GIF" border="0" align="absBottom" alt="" />]</div>
<div class="pcixin">prep.</div>
<div class="pexplain">1. 关于,对于</div>
<div class="peng"><span id="dropdownid"><span id="dropdownid">&nbsp;&nbsp;&nbsp;&nbsp; </span><font color="#3366ff">My mother often spoke to me <font class="engi">about</font> you.</font></span></div>
<div class="pchi"><span id="dropdownid"><span id="dropdownid">&nbsp;&nbsp;&nbsp;&nbsp; </span>家母常和我谈起你。</span></div>
<div class="pexplain">2. 在...的附近;在...的周围</div>
<div class="peng"><span id="dropdownid"><span id="dropdownid">&nbsp;&nbsp;&nbsp;&nbsp; </span><font color="#3366ff">She sat up and looked <font class="engi">about</font> her.</font></span></div>
<div class="pchi"><span id="dropdownid"><span id="dropdownid">&nbsp;&nbsp;&nbsp;&nbsp; </span>她坐了起来,环顾四周。</span></div>
<div class="pexplain">3. 在...的身边</div>
<div class="peng"><span id="dropdownid"><span id="dropdownid">&nbsp;&nbsp;&nbsp;&nbsp; </span><font color="#3366ff">I had no money <font class="engi">about</font> me.</font></span></div>
<div class="pchi"><span id="dropdownid"><span id="dropdownid">&nbsp;&nbsp;&nbsp;&nbsp; </span>我身边没有带钱。</span></div>
<div class="pexplain">4. 大约在...时候</div>
<div class="peng"><span id="dropdownid"><span id="dropdownid">&nbsp;&nbsp;&nbsp;&nbsp;<font color="#3366ff"> </font></span><font color="#3366ff">It happened <font class="engi">about</font> 5 o'clock in the morning.</font></span></div>
<div class="pchi"><span id="dropdownid"><span id="dropdownid">&nbsp;&nbsp;&nbsp;&nbsp; </span>这事发生在早晨约莫五点钟的时候。</span></div>
<div class="pexplain">5. 从事于</div>
<div class="peng"><span id="dropdownid"><span id="dropdownid">&nbsp;&nbsp;&nbsp;&nbsp; </span><font color="#3366ff">What the hell are you <font class="engi">about</font>?</font></span></div>
<div class="pchi"><span id="dropdownid"><span id="dropdownid">&nbsp;&nbsp;&nbsp;&nbsp; </span>你到底在做什么?</span></div>
<div class="pexplain">6. 在...身上,在...的性格中</div>
<div class="peng"><span id="dropdownid"><span id="dropdownid">&nbsp;&nbsp;&nbsp;&nbsp; </span><font color="#3366ff">What I like <font class="engi">about</font> him is his sense of humor.</font></span></div>
<div class="pchi"><span id="dropdownid"><span id="dropdownid">&nbsp;&nbsp;&nbsp;&nbsp; </span>我喜欢的是他的幽默感。</span></div>
<div class="pcixin">ad.</div>
<div class="pexplain">1. 在四周;到处</div>
<div class="peng"><span id="dropdownid"><span id="dropdownid">&nbsp;&nbsp;&nbsp;&nbsp; </span><font color="#3366ff">She likes to walk <font class="engi">about</font>.</font></span></div>
<div class="pchi"><span id="dropdownid"><span id="dropdownid">&nbsp;&nbsp;&nbsp;&nbsp; </span>她喜爱四处走走。</span></div>
<div class="pexplain">2. 在附近,在近处</div>
<div class="peng"><span id="dropdownid"><span id="dropdownid">&nbsp;&nbsp;&nbsp;&nbsp; </span><font color="#3366ff">There were few people <font class="engi">about</font>.</font></span></div>
<div class="pchi"><span id="dropdownid"><span id="dropdownid">&nbsp;&nbsp;&nbsp;&nbsp; </span>附近几乎无人。</span></div>
<div class="pexplain">3. 大约;几乎</div>
<div class="peng"><span id="dropdownid"><span id="dropdownid">&nbsp;&nbsp;&nbsp;&nbsp; </span><font color="#3366ff">John is <font class="engi">about</font> the same age as Tom.</font></span></div>
<div class="pchi"><span id="dropdownid"><span id="dropdownid">&nbsp;&nbsp;&nbsp;&nbsp; </span>约翰和汤姆的年龄相仿。</span></div>
<div class="pexplain">4. 向相反方向</div>
<div class="peng"><span id="dropdownid"><span id="dropdownid">&nbsp;&nbsp;&nbsp;&nbsp; </span><font color="#3366ff">The ship turned <font class="engi">about</font> midway.</font></span></div>
<div class="pchi"><span id="dropdownid"><span id="dropdownid">&nbsp;&nbsp;&nbsp;&nbsp; </span>船在中途掉转了航向。</span></div>
<div class="pchi"><span></span></div>
<div class="pchi"><span></span></div>
<div class="pchi"><span>
<div class="ptitle"><strong>3.above<span onmouseover="this.style.cursor='hand'" onclick="ToggleDisplay(dropdownid,16)" style="CURSOR: hand"><img src="http://www.baidu.com/IMAGES/DIC/arr01.jpg" id="dropdownid" border="0" align="middle" alt="display/hide example sentences" /></span></strong></div>
<div class="ptitle"><strong><span onmouseover="this.style.cursor='hand'" onclick="ToggleDisplay(dropdownid,16)" style="CURSOR: hand"></span></strong><br />
KK: [<img src="http://www.baidu.com/IMAGES/DIC/PN/018.GIF" border="0" align="absBottom" alt="" /><img src="http://www.baidu.com/IMAGES/DIC/PN/053.GIF" border="0" align="absBottom" alt="" /><img src="http://www.baidu.com/IMAGES/DIC/PN/038.GIF" border="0" align="absBottom" alt="" /><img src="http://www.baidu.com/IMAGES/DIC/PN/020.GIF" border="0" align="absBottom" alt="" /><img src="http://www.baidu.com/IMAGES/DIC/PN/043.GIF" border="0" align="absBottom" alt="" />]<br />
DJ: [<img src="http://www.baidu.com/IMAGES/DIC/PN/018.GIF" border="0" align="absBottom" alt="" /><img src="http://www.baidu.com/IMAGES/DIC/PN/053.GIF" border="0" align="absBottom" alt="" /><img src="http://www.baidu.com/IMAGES/DIC/PN/038.GIF" border="0" align="absBottom" alt="" /><img src="http://www.baidu.com/IMAGES/DIC/PN/020.GIF" border="0" align="absBottom" alt="" /><img src="http://www.baidu.com/IMAGES/DIC/PN/043.GIF" border="0" align="absBottom" alt="" />]</div>
<div class="pcixin">prep.</div>
<div class="pexplain">1. 在...上面</div>
<div class="peng"><span id="dropdownid"><span id="dropdownid">&nbsp;&nbsp;&nbsp;&nbsp; </span><font color="#3366ff">The moon is now <font class="engi">above</font> the trees.</font></span></div>
<div class="pchi"><span id="dropdownid"><span id="dropdownid">&nbsp;&nbsp;&nbsp;&nbsp; </span>月亮正位于树梢上。</span></div>
<div class="pexplain">2. 在...之上,超过</div>
<div class="peng"><span id="dropdownid"><span id="dropdownid">&nbsp;&nbsp;&nbsp;&nbsp; </span><font color="#3366ff">They are children <font class="engi">above</font> six years old.</font></span></div>
<div class="pchi"><span id="dropdownid"><span id="dropdownid">&nbsp;&nbsp;&nbsp;&nbsp; </span>他们是六岁以上的孩子。</span></div>
<div class="pexplain">3. 高于;优于;胜过</div>
<div class="peng"><span id="dropdownid"><span id="dropdownid">&nbsp;&nbsp;&nbsp;&nbsp; </span><font color="#3366ff">In the company, Dick ranks <font class="engi">above</font> Tom.</font></span></div>
<div class="pchi"><span id="dropdownid"><span id="dropdownid">&nbsp;&nbsp;&nbsp;&nbsp; </span>在公司里,迪克的地位比汤姆高。</span></div>
<div class="pexplain">4. 不屑于;不致于</div>
<div class="peng"><span id="dropdownid"><span id="dropdownid">&nbsp;&nbsp;&nbsp;&nbsp; </span><font color="#3366ff">He considered himself <font class="engi">above</font> doing such things.</font></span></div>
<div class="pchi"><span id="dropdownid"><span id="dropdownid">&nbsp;&nbsp;&nbsp;&nbsp; </span>他自认为是不会去做那种事的。</span></div>
<div class="pcixin">ad.</div>
<div class="pexplain">1. 在上面;向上面</div>
<div class="peng"><span id="dropdownid"><span id="dropdownid">&nbsp;&nbsp;&nbsp;&nbsp; </span><font color="#3366ff">There are snowy peaks <font class="engi">above</font>.</font></span></div>
<div class="pchi"><span id="dropdownid"><span id="dropdownid">&nbsp;&nbsp;&nbsp;&nbsp; </span>上面是白雪皑皑的群峰。</span></div>
<div class="pexplain">2. (级别、数目等)更高;更大;更多</div>
<div class="peng"><span id="dropdownid"><span id="dropdownid">&nbsp;&nbsp;&nbsp;&nbsp; </span><font color="#3366ff">Men and women of eighteen and <font class="engi">above</font> are eligible to vote.</font></span></div>
<div class="pchi"><span id="dropdownid"><span id="dropdownid">&nbsp;&nbsp;&nbsp;&nbsp; </span>年龄在十八岁以上的男女有投票表决权。</span></div>
<div class="pexplain">3. 在上文</div>
<div class="peng"><span id="dropdownid"><span id="dropdownid">&nbsp;&nbsp;&nbsp;&nbsp; </span><font color="#3366ff">See the examples given <font class="engi">above</font>.</font></span></div>
<div class="pchi"><span id="dropdownid"><span id="dropdownid">&nbsp;&nbsp;&nbsp;&nbsp; </span>见上述例子。</span></div>
<div class="pcixin">a.</div>
<div class="pexplain">1. 上文的,前述的</div>
<div class="pcixin">n.</div>
<div class="pexplain">1. 上文;上述事实</div>
<div class="peng"><span id="dropdownid"><span id="dropdownid">&nbsp;&nbsp;&nbsp;&nbsp; </span><font color="#3366ff">In addition to all of the <font class="engi">above</font>, she won a Pulitzer Prize in 1980.</font></span></div>
<div class="pchi"><span id="dropdownid"><span id="dropdownid">&nbsp;&nbsp;&nbsp;&nbsp; </span>除上述外,她还在一九八○年获得普利策奖。</span></div>
<div class="pchi"><span></span></div>
<div class="pchi"><span></span></div>
<span>
<div class="ptitle"><strong>4.afraid<span onmouseover="this.style.cursor='hand'" onclick="ToggleDisplay(dropdownid,10)" style="CURSOR: hand"><img src="http://www.baidu.com/IMAGES/DIC/arr01.jpg" id="dropdownid" border="0" align="middle" alt="display/hide example sentences" /></span></strong></div>
<div class="ptitle"><strong><span onmouseover="this.style.cursor='hand'" onclick="ToggleDisplay(dropdownid,10)" style="CURSOR: hand"></span></strong><br />
KK: [<img src="http://www.baidu.com/IMAGES/DIC/PN/018.GIF" border="0" align="absBottom" alt="" /><img src="http://www.baidu.com/IMAGES/DIC/PN/053.GIF" border="0" align="absBottom" alt="" /><img src="http://www.baidu.com/IMAGES/DIC/PN/042.GIF" border="0" align="absBottom" alt="" /><img src="http://www.baidu.com/IMAGES/DIC/PN/050.GIF" border="0" align="absBottom" alt="" /><img src="http://www.baidu.com/IMAGES/DIC/PN/021.GIF" border="0" align="absBottom" alt="" /><img src="http://www.baidu.com/IMAGES/DIC/PN/040.GIF" border="0" align="absBottom" alt="" />]<br />
DJ: [<img src="http://www.baidu.com/IMAGES/DIC/PN/018.GIF" border="0" align="absBottom" alt="" /><img src="http://www.baidu.com/IMAGES/DIC/PN/053.GIF" border="0" align="absBottom" alt="" /><img src="http://www.baidu.com/IMAGES/DIC/PN/042.GIF" border="0" align="absBottom" alt="" /><img src="http://www.baidu.com/IMAGES/DIC/PN/050.GIF" border="0" align="absBottom" alt="" /><img src="http://www.baidu.com/IMAGES/DIC/PN/021.GIF" border="0" align="absBottom" alt="" /><img src="http://www.baidu.com/IMAGES/DIC/PN/033.GIF" border="0" align="absBottom" alt="" /><img src="http://www.baidu.com/IMAGES/DIC/PN/040.GIF" border="0" align="absBottom" alt="" />]</div>
<div class="pcixin">a.[F]</div>
<div class="pexplain">1. 害怕的,怕的[(+of)][+to-v][+(that)]</div>
<div class="peng"><span id="dropdownid"><span id="dropdownid">&nbsp;&nbsp;&nbsp;&nbsp; </span><font color="#3366ff">She was <font class="engi">afraid</font> that she might lose her job.</font></span></div>
<div class="pchi"><span id="dropdownid"><span id="dropdownid">&nbsp;&nbsp;&nbsp;&nbsp; </span>她担心会丢掉工作。</span></div>
<div class="peng"><span id="dropdownid"><span id="dropdownid">&nbsp;&nbsp;&nbsp;&nbsp; </span><font color="#3366ff">It seems that she is <font class="engi">afraid</font> to tell them about it.</font></span></div>
<div class="pchi"><span id="dropdownid"><span id="dropdownid">&nbsp;&nbsp;&nbsp;&nbsp; </span>似乎她怕将此事告诉他们。</span></div>
<div class="peng"><span id="dropdownid"><span id="dropdownid">&nbsp;&nbsp;&nbsp;&nbsp; </span><font color="#3366ff">Don't be <font class="engi">afraid</font> of snakes.</font></span></div>
<div class="pchi"><span id="dropdownid"><span id="dropdownid">&nbsp;&nbsp;&nbsp;&nbsp; </span>别怕蛇。</span></div>
<div class="pexplain">2. (用于提出异议,告诉不好的消息等场合,使语气婉转)恐怕,遗憾[+(that)]</div>
<div class="peng"><span id="dropdownid"><span id="dropdownid">&nbsp;&nbsp;&nbsp;&nbsp;<font color="#3366ff"> </font></span><font color="#3366ff">I'm <font class="engi">afraid</font> your wife had an accident.</font></span></div>
<div class="pchi"><span id="dropdownid"><span id="dropdownid">&nbsp;&nbsp;&nbsp;&nbsp; </span>很遗憾,你妻子出事了。</span></div>
<div class="peng"><span id="dropdownid"><span id="dropdownid">&nbsp;&nbsp;&nbsp;&nbsp; </span>I'<font color="#3366ff">m <font class="engi">afraid</font> I can't help you.</font></span></div>
<div class="pchi"><span id="dropdownid"><span id="dropdownid">&nbsp;&nbsp;&nbsp;&nbsp; </span>对不起,我不能帮你。</span></div>
<div class="pchi"><span></span></div>
<div class="pchi"><span></span></div>
</span></span><span></span></div>
<div class="pchi"><span>
<div class="ptitle"><strong>5.after<span onmouseover="this.style.cursor='hand'" onclick="ToggleDisplay(dropdownid,30)" style="CURSOR: hand"><img src="http://www.baidu.com/IMAGES/DIC/arr01.jpg" id="dropdownid" border="0" align="middle" alt="display/hide example sentences" /></span></strong></div>
<div class="ptitle"><span onmouseover="this.style.cursor='hand'" onclick="ToggleDisplay(dropdownid,30)"></span><br />
KK: [<img src="http://www.baidu.com/IMAGES/DIC/PN/053.GIF" border="0" align="absBottom" alt="" /><img src="http://www.baidu.com/IMAGES/DIC/PN/001.GIF" border="0" align="absBottom" alt="" /><img src="http://www.baidu.com/IMAGES/DIC/PN/042.GIF" border="0" align="absBottom" alt="" /><img src="http://www.baidu.com/IMAGES/DIC/PN/039.GIF" border="0" align="absBottom" alt="" /><img src="http://www.baidu.com/IMAGES/DIC/PN/019.GIF" border="0" align="absBottom" alt="" />]<br />
DJ: [<img src="http://www.baidu.com/IMAGES/DIC/PN/053.GIF" border="0" align="absBottom" alt="" /><img src="http://www.baidu.com/IMAGES/DIC/PN/007.GIF" border="0" align="absBottom" alt="" /><img src="http://www.baidu.com/IMAGES/DIC/PN/003.GIF" border="0" align="absBottom" alt="" /><img src="http://www.baidu.com/IMAGES/DIC/PN/042.GIF" border="0" align="absBottom" alt="" /><img src="http://www.baidu.com/IMAGES/DIC/PN/039.GIF" border="0" align="absBottom" alt="" /><img src="http://www.baidu.com/IMAGES/DIC/PN/018.GIF" border="0" align="absBottom" alt="" />]</div>
<div class="pcixin">prep.</div>
<div class="pexplain">1. 在...以后</div>
<div class="peng"><span id="dropdownid"><font class="engi"><span id="dropdownid">&nbsp;<font color="#3366ff">&nbsp;&nbsp;&nbsp; </font></span><font color="#3366ff">After</font></font><font color="#3366ff"> graduation he went abroad.</font></span></div>
<div class="pchi"><span id="dropdownid"><span id="dropdownid">&nbsp;&nbsp;&nbsp;&nbsp; </span>毕业后他去了国外。</span></div>
<div class="peng"><span id="dropdownid"><span id="dropdownid">&nbsp;&nbsp;&nbsp;&nbsp;<font color="#3366ff"> </font></span><font color="#3366ff">At half <font class="engi">after</font> ten it began to rain.</font></span></div>
<div class="pchi"><span id="dropdownid"><span id="dropdownid">&nbsp;&nbsp;&nbsp;&nbsp; </span>在十点半下起雨来。</span></div>
<div class="pexplain">2. 在...后面;随...之后</div>
<div class="peng"><span id="dropdownid"><font class="engi"><span id="dropdownid">&nbsp;&nbsp;&nbsp;&nbsp; </span><font color="#3366ff">After</font></font><font color="#3366ff"> you with the paper, please.</font></span></div>
<div class="pchi"><span id="dropdownid"><span id="dropdownid">&nbsp;&nbsp;&nbsp;&nbsp; </span>请您看完报纸后给我。</span></div>
<div class="peng"><span id="dropdownid"><span id="dropdownid">&nbsp;&nbsp;&nbsp;&nbsp; </span><font color="#3366ff">She entered the hall <font class="engi">after</font> her mother.</font></span></div>
<div class="pchi"><span id="dropdownid"><span id="dropdownid">&nbsp;&nbsp;&nbsp;&nbsp; </span>她跟随在她母亲之后进入厅内。</span></div>
<div class="pexplain">3. 低于;次于</div>
<div class="peng"><span id="dropdownid"><span id="dropdownid">&nbsp;&nbsp;&nbsp;&nbsp;<font color="#3366ff"> </font></span><font color="#3366ff">A captain comes <font class="engi">after</font> a major.</font></span></div>
<div class="pchi"><span id="dropdownid"><span id="dropdownid">&nbsp;&nbsp;&nbsp;&nbsp; </span>上尉军衔低于少校。</span></div>
<div class="pexplain">4. 鉴于,由于</div>
<div class="peng"><span id="dropdownid"><font class="engi"><span id="dropdownid">&nbsp;&nbsp;&nbsp;&nbsp; </span><font color="#3366ff">After</font></font><font color="#3366ff"> what had happened he could not continue to work there.</font></span></div>
<div class="pchi"><span id="dropdownid"><span id="dropdownid">&nbsp;&nbsp;&nbsp;&nbsp; </span>鉴于所发生的事情,他不可能继续在那里工作下去了。</span></div>
<div class="pexplain">5. 仿照,模仿</div>
<div class="peng"><span id="dropdownid"><span id="dropdownid">&nbsp;&nbsp;&nbsp;&nbsp;<font color="#3366ff"> </font></span><font color="#3366ff">This is a painting <font class="engi">after</font> Picasso.</font></span></div>
<div class="pchi"><span id="dropdownid"><span id="dropdownid">&nbsp;&nbsp;&nbsp;&nbsp; </span>这是一幅仿毕加索的画。</span></div>
<div class="pexplain">6. 依照;按照...的名字</div>
<div class="peng"><span id="dropdownid"><span id="dropdownid">&nbsp;&nbsp;&nbsp;&nbsp; </span><font color="#3366ff">The kid was named <font class="engi">after</font> his grandfather.</font></span></div>
<div class="pchi"><span id="dropdownid"><span id="dropdownid">&nbsp;&nbsp;&nbsp;&nbsp; </span>这孩子是以他祖父的名字命名的。</span></div>
<div class="pexplain">7. 尽管</div>
<div class="peng"><span id="dropdownid"><font class="engi"><span id="dropdownid">&nbsp;&nbsp;&nbsp;&nbsp; </span><font color="#3366ff">After</font></font><font color="#3366ff"> all our efforts, the experiment failed.</font></span></div>
<div class="pchi"><span id="dropdownid"><span id="dropdownid">&nbsp;&nbsp;&nbsp;&nbsp; </span>尽管我们做了努力,试验还是失败了。</span></div>
<div class="pexplain">8. 搜寻,寻找</div>
<div class="peng"><span id="dropdownid"><span id="dropdownid">&nbsp;&nbsp;&nbsp;&nbsp; </span><font color="#3366ff">Mary is <font class="engi">after</font> a better job.</font></span></div>
<div class="pchi"><span id="dropdownid"><span id="dropdownid">&nbsp;&nbsp;&nbsp;&nbsp; </span>玛丽在寻找一个更好的工作。</span></div>
<div class="pcixin">conj.</div>
<div class="pexplain">1. 在...之后</div>
<div class="peng"><span id="dropdownid"><span id="dropdownid">&nbsp;<font color="#3366ff">&nbsp;&nbsp;&nbsp; </font></span><font color="#3366ff">I will tell you <font class="engi">after</font> they leave.</font></span></div>
<div class="pchi"><span id="dropdownid"><span id="dropdownid">&nbsp;&nbsp;&nbsp;&nbsp; </span>他们走后我再告诉你。</span></div>
<div class="pcixin">ad.</div>
<div class="pexplain">1. 以后,之后</div>
<div class="peng"><span id="dropdownid"><span id="dropdownid">&nbsp;&nbsp;&nbsp;&nbsp; </span><font color="#3366ff">They arrived shortly <font class="engi">after</font>.</font></span></div>
<div class="pchi"><span id="dropdownid"><span id="dropdownid">&nbsp;&nbsp;&nbsp;&nbsp; </span>不久以后他们抵达了。</span></div>
<div class="pexplain">2. 在后面,随后</div>
<div class="peng"><span id="dropdownid"><span id="dropdownid">&nbsp;&nbsp;&nbsp;&nbsp;<font color="#3366ff"> </font></span><font color="#3366ff">Tom went on Monday, and Mary left the day <font class="engi">after</font>.</font></span></div>
<div class="pchi"><span id="dropdownid"><span id="dropdownid">&nbsp;&nbsp;&nbsp;&nbsp; </span>汤姆星期一走的,玛丽第二天就离开了。</span></div>
<div class="pcixin">a.[B]</div>
<div class="pexplain">1. 以后的</div>
<div class="peng"><span id="dropdownid"><span id="dropdownid">&nbsp;&nbsp;&nbsp;&nbsp; </span><font color="#3366ff">His health was declining in <font class="engi">after</font> years.</font></span></div>
<div class="pchi"><span id="dropdownid"><span id="dropdownid">&nbsp;&nbsp;&nbsp;&nbsp; </span>在以后的岁月,他的健康不断衰退。</span></div>
<div class="pexplain">2. 后部的</div>
<div class="peng"><span id="dropdownid"><span id="dropdownid">&nbsp;&nbsp;&nbsp;&nbsp;<font color="#3366ff"> </font></span><font color="#3366ff">A few passengers would have a stroll on the <font class="engi">after</font> deck before the evening meal.</font></span></div>
<div class="pchi"><span id="dropdownid"><span id="dropdownid">&nbsp;&nbsp;&nbsp;&nbsp; </span>几位乘客将在晚饭前到后甲板上散步。</span></div>
<div class="pchi"><span></span></div>
<div class="pchi"><span></span></div>
<div class="pchi"><span>
<div class="ptitle"><strong>6.afternoon<span onmouseover="this.style.cursor='hand'" onclick="ToggleDisplay(dropdownid,2)" style="CURSOR: hand"><img src="http://www.baidu.com/IMAGES/DIC/arr01.jpg" id="dropdownid" border="0" align="middle" alt="display/hide example sentences" /></span></strong></div>
<div class="ptitle"><strong><span onmouseover="this.style.cursor='hand'" onclick="ToggleDisplay(dropdownid,2)" style="CURSOR: hand"></span></strong><br />
KK: [<img src="http://www.baidu.com/IMAGES/DIC/PN/053.GIF" border="0" align="absBottom" alt="" /><img src="http://www.baidu.com/IMAGES/DIC/PN/001.GIF" border="0" align="absBottom" alt="" /><img src="http://www.baidu.com/IMAGES/DIC/PN/042.GIF" border="0" align="absBottom" alt="" /><img src="http://www.baidu.com/IMAGES/DIC/PN/039.GIF" border="0" align="absBottom" alt="" /><img src="http://www.baidu.com/IMAGES/DIC/PN/019.GIF" border="0" align="absBottom" alt="" /><img src="http://www.baidu.com/IMAGES/DIC/PN/053.GIF" border="0" align="absBottom" alt="" /><img src="http://www.baidu.com/IMAGES/DIC/PN/047.GIF" border="0" align="absBottom" alt="" /><img src="http://www.baidu.com/IMAGES/DIC/PN/035.GIF" border="0" align="absBottom" alt="" /><img src="http://www.baidu.com/IMAGES/DIC/PN/047.GIF" border="0" align="absBottom" alt="" />]<br />
DJ: [<img src="http://www.baidu.com/IMAGES/DIC/PN/053.GIF" border="0" align="absBottom" alt="" /><img src="http://www.baidu.com/IMAGES/DIC/PN/007.GIF" border="0" align="absBottom" alt="" /><img src="http://www.baidu.com/IMAGES/DIC/PN/003.GIF" border="0" align="absBottom" alt="" /><img src="http://www.baidu.com/IMAGES/DIC/PN/042.GIF" border="0" align="absBottom" alt="" /><img src="http://www.baidu.com/IMAGES/DIC/PN/039.GIF" border="0" align="absBottom" alt="" /><img src="http://www.baidu.com/IMAGES/DIC/PN/018.GIF" border="0" align="absBottom" alt="" /><img src="http://www.baidu.com/IMAGES/DIC/PN/053.GIF" border="0" align="absBottom" alt="" /><img src="http://www.baidu.com/IMAGES/DIC/PN/047.GIF" border="0" align="absBottom" alt="" /><img src="http://www.baidu.com/IMAGES/DIC/PN/035.GIF" border="0" align="absBottom" alt="" /><img src="http://www.baidu.com/IMAGES/DIC/PN/003.GIF" border="0" align="absBottom" alt="" /><img src="http://www.baidu.com/IMAGES/DIC/PN/047.GIF" border="0" align="absBottom" alt="" />]</div>
<div class="pcixin">n.</div>
<div class="pexplain">1. 下午,午后[C][U]</div>
<div class="peng"><span id="dropdownid"><span id="dropdownid">&nbsp;&nbsp;&nbsp;&nbsp; </span><font color="#3366ff">I'll leave for Tokyo this <font class="engi">afternoon</font>.</font></span></div>
<div class="pchi"><span id="dropdownid"><span id="dropdownid">&nbsp;&nbsp;&nbsp;&nbsp; </span>我今天下午出发去东京。</span></div>
<div class="pchi"><span></span></div>
<div class="pchi"><span>
<div class="ptitle"><strong>7.again<span onmouseover="this.style.cursor='hand'" onclick="ToggleDisplay(dropdownid,6)" style="CURSOR: hand"><img src="http://www.baidu.com/IMAGES/DIC/arr01.jpg" id="dropdownid" border="0" align="middle" alt="display/hide example sentences" /></span></strong></div>
<div class="ptitle"><strong><span onmouseover="this.style.cursor='hand'" onclick="ToggleDisplay(dropdownid,6)" style="CURSOR: hand"></span></strong><br />
KK: [<img src="http://www.baidu.com/IMAGES/DIC/PN/018.GIF" border="0" align="absBottom" alt="" /><img src="http://www.baidu.com/IMAGES/DIC/PN/053.GIF" border="0" align="absBottom" alt="" /><img src="http://www.baidu.com/IMAGES/DIC/PN/055.GIF" border="0" align="absBottom" alt="" /><img src="http://www.baidu.com/IMAGES/DIC/PN/022.GIF" border="0" align="absBottom" alt="" /><img src="http://www.baidu.com/IMAGES/DIC/PN/047.GIF" border="0" align="absBottom" alt="" />]<br />
DJ: [<img src="http://www.baidu.com/IMAGES/DIC/PN/018.GIF" border="0" align="absBottom" alt="" /><img src="http://www.baidu.com/IMAGES/DIC/PN/053.GIF" border="0" align="absBottom" alt="" /><img src="http://www.baidu.com/IMAGES/DIC/PN/055.GIF" border="0" align="absBottom" alt="" /><img src="http://www.baidu.com/IMAGES/DIC/PN/021.GIF" border="0" align="absBottom" alt="" /><img src="http://www.baidu.com/IMAGES/DIC/PN/047.GIF" border="0" align="absBottom" alt="" />]</div>
<div class="pcixin">ad.</div>
<div class="pexplain">1. 再,再一次</div>
<div class="peng"><span id="dropdownid"><span id="dropdownid">&nbsp;&nbsp;&nbsp;&nbsp; </span><font color="#3366ff">Would you say that <font class="engi">again</font>?</font></span></div>
<div class="pchi"><span id="dropdownid"><span id="dropdownid">&nbsp;&nbsp;&nbsp;&nbsp; </span>请你再说一遍好吗?</span></div>
<div class="pexplain">2. 重回;恢复原状</div>
<div class="peng"><span id="dropdownid"><span id="dropdownid">&nbsp;&nbsp;&nbsp;&nbsp; </span><font color="#3366ff">Henry was glad to be home <font class="engi">again</font>.</font></span></div>
<div class="pchi"><span id="dropdownid"><span id="dropdownid">&nbsp;&nbsp;&nbsp;&nbsp; </span>亨利很高兴又回到家里。</span></div>
<div class="pexplain">3. 再者;此外</div>
<div class="peng"><span id="dropdownid"><span id="dropdownid">&nbsp;&nbsp;&nbsp;&nbsp; </span><font color="#3366ff">Then <font class="engi">again</font>, I doubt whether he will come.</font></span></div>
<div class="pchi"><span id="dropdownid"><span id="dropdownid">&nbsp;&nbsp;&nbsp;&nbsp; </span>再说,我怀疑他是否会来。</span></div>
<div class="pchi"><span></span></div>
<div class="pchi"><span>
<div class="ptitle"><strong>8.age<span onmouseover="this.style.cursor='hand'" onclick="ToggleDisplay(dropdownid,20)" style="CURSOR: hand"><img src="http://www.baidu.com/IMAGES/DIC/arr01.jpg" id="dropdownid" border="0" align="middle" alt="display/hide example sentences" /></span></strong></div>
<div class="ptitle"><strong><span onmouseover="this.style.cursor='hand'" onclick="ToggleDisplay(dropdownid,20)" style="CURSOR: hand"></span></strong><br />
KK: [<img src="http://www.baidu.com/IMAGES/DIC/PN/021.GIF" border="0" align="absBottom" alt="" /><img src="http://www.baidu.com/IMAGES/DIC/PN/040.GIF" border="0" align="absBottom" alt="" /><img src="http://www.baidu.com/IMAGES/DIC/PN/026.GIF" border="0" align="absBottom" alt="" />]<br />
DJ: [<img src="http://www.baidu.com/IMAGES/DIC/PN/021.GIF" border="0" align="absBottom" alt="" /><img src="http://www.baidu.com/IMAGES/DIC/PN/033.GIF" border="0" align="absBottom" alt="" /><img src="http://www.baidu.com/IMAGES/DIC/PN/040.GIF" border="0" align="absBottom" alt="" /><img src="http://www.baidu.com/IMAGES/DIC/PN/026.GIF" border="0" align="absBottom" alt="" />]</div>
<div class="pcixin">n.</div>
<div class="pexplain">1. 年龄[C][U]</div>
<div class="peng"><span id="dropdownid"><span id="dropdownid">&nbsp;&nbsp;&nbsp;&nbsp; </span><font color="#3366ff">What's the <font class="engi">age</font> of that old building?</font></span></div>
<div class="pchi"><span id="dropdownid"><span id="dropdownid">&nbsp;&nbsp;&nbsp;&nbsp; </span>那座古老的建筑有多久的历史了?</span></div>
<div class="pexplain">2. (人生的)某一时期[U]</div>
<div class="peng"><span id="dropdownid"><span id="dropdownid">&nbsp;&nbsp;&nbsp;&nbsp; </span><font color="#3366ff">I used to play tennis there when I was your <font class="engi">age</font>.</font></span></div>
<div class="pchi"><span id="dropdownid"><span id="dropdownid">&nbsp;&nbsp;&nbsp;&nbsp; </span>当我在你这个年纪的时候,我常在那里打网球。</span></div>
<div class="pexplain">3. 法定年龄;成年[U]</div>
<div class="peng"><span id="dropdownid"><span id="dropdownid">&nbsp;&nbsp;&nbsp;&nbsp;<font color="#3366ff"> </font></span><font color="#3366ff">Bob comes of <font class="engi">age</font> next week.</font></span></div>
<div class="pchi"><span id="dropdownid"><span id="dropdownid">&nbsp;&nbsp;&nbsp;&nbsp; </span>鲍勃下周到达法定年龄。</span></div>
<div class="pexplain">4. 老年[U]</div>
<div class="peng"><span id="dropdownid"><span id="dropdownid">&nbsp;&nbsp;&nbsp;&nbsp;<font color="#3366ff"> </font></span><font color="#3366ff">My grandfather was bent with <font class="engi">age</font>.</font></span></div>
<div class="pchi"><span id="dropdownid"><span id="dropdownid">&nbsp;&nbsp;&nbsp;&nbsp; </span>我祖父年老背驼。</span></div>
<div class="pexplain">5. (常大写)时代[S1]</div>
<div class="peng"><span id="dropdownid"><span id="dropdownid">&nbsp;&nbsp;&nbsp;&nbsp;<font color="#3366ff"> </font></span><font color="#3366ff">We live in the Space <font class="engi">Age</font>.</font></span></div>
<div class="pchi"><span id="dropdownid"><span id="dropdownid">&nbsp;&nbsp;&nbsp;&nbsp; </span>我们生活在太空时代。</span></div>
<div class="pexplain">6. 很长时间[P1]</div>
<div class="peng"><span id="dropdownid"><span id="dropdownid">&nbsp;&nbsp;&nbsp;&nbsp; </span><font color="#3366ff">I haven't seen him for <font class="engi">ages</font>.</font></span></div>
<div class="pchi"><span id="dropdownid"><span id="dropdownid">&nbsp;&nbsp;&nbsp;&nbsp; </span>我已好长时间没有见到他了。</span></div>
<div class="pcixin">vi.</div>
<div class="pexplain">1. 变老</div>
<div class="peng"><span id="dropdownid"><span id="dropdownid">&nbsp;&nbsp;&nbsp;&nbsp; </span><font color="#3366ff">Since her husband's death, she has <font class="engi">aged</font> considerably.</font></span></div>
<div class="pchi"><span id="dropdownid"><span