﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>BlogJava--随笔分类-ruby</title><link>http://www.blogjava.net/leekiang/category/30625.html</link><description>MDA/MDD/TDD/DDD/DDDDDDD</description><language>zh-cn</language><lastBuildDate>Sat, 27 Aug 2011 03:03:40 GMT</lastBuildDate><pubDate>Sat, 27 Aug 2011 03:03:40 GMT</pubDate><ttl>60</ttl><item><title>rmagick</title><link>http://www.blogjava.net/leekiang/archive/2010/05/17/321125.html</link><dc:creator>leekiang</dc:creator><author>leekiang</author><pubDate>Sun, 16 May 2010 19:12:00 GMT</pubDate><guid>http://www.blogjava.net/leekiang/archive/2010/05/17/321125.html</guid><wfw:comment>http://www.blogjava.net/leekiang/comments/321125.html</wfw:comment><comments>http://www.blogjava.net/leekiang/archive/2010/05/17/321125.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/leekiang/comments/commentRss/321125.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/leekiang/services/trackbacks/321125.html</trackback:ping><description><![CDATA[
		<div>在windows上直接gem安装rmagick时报Building native extensions.   Error installing rmagick windows<br /><br />1 从<a href="http://rubyforge.org/projects/rmagick/" target="_blank">http://rubyforge.org/projects/rmagick/</a>
下载<strong style="">rmagick-win32</strong>
对应的zip包.没找到ruby1.8.7和1.9的，只好先下1.8.6的</div>
		<div>2 
解压zip到一个临时目录，在该目录中有一个ImageMagick的ext安装文件,安装。</div>
		<div style="">3 开一个命令行窗口，cd到解压的临时目录，敲入命令： gem install rmagick. </div>
		<div>4.<span id="ctl00_MainContentPlaceholder_ctl01_ctl00_lblEntry">把<span id="ctl00_MainContentPlaceholder_ctl01_ctl00_lblEntry">ImageMagick</span>
的安装路径放到path环境变量里面</span></div>
		<div>
				<br />
		</div>
		<div>可能出现的问题：</div>
		<div>1.CORE_RL_magick_.dll找不到？</div>
		<div>把<span id="ctl00_MainContentPlaceholder_ctl01_ctl00_lblEntry">ImageMagick</span>
的安装路径放到path环境变量里面去就OK了。</div>
		<div>2.<span id="ctl00_MainContentPlaceholder_ctl01_ctl00_lblEntry">gem 
install rmagick 失败</span></div>
		<div>
				<span id="ctl00_MainContentPlaceholder_ctl01_ctl00_lblEntry">更新gem的
版本（ gem update --system)<br /><br />参考http://wxmfly.javaeye.com/blog/216787<br /></span>
		</div>
<img src ="http://www.blogjava.net/leekiang/aggbug/321125.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/leekiang/" target="_blank">leekiang</a> 2010-05-17 03:12 <a href="http://www.blogjava.net/leekiang/archive/2010/05/17/321125.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>ruby笔记</title><link>http://www.blogjava.net/leekiang/archive/2010/03/17/315647.html</link><dc:creator>leekiang</dc:creator><author>leekiang</author><pubDate>Tue, 16 Mar 2010 16:53:00 GMT</pubDate><guid>http://www.blogjava.net/leekiang/archive/2010/03/17/315647.html</guid><wfw:comment>http://www.blogjava.net/leekiang/comments/315647.html</wfw:comment><comments>http://www.blogjava.net/leekiang/archive/2010/03/17/315647.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/leekiang/comments/commentRss/315647.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/leekiang/services/trackbacks/315647.html</trackback:ping><description><![CDATA[1,数组<br />arr = [1,2,3,4]<br />puts arr.find{|i| i%2 == 0 }   #find返回满足条件的第一条记录<br />puts arr.select{|i| i%2 == 0}  #select返回满足条件的全部记录<br />arr.unshift(0)                 在头部添加<br />arr.push(5,6)                  在尾部添加<br />arr&lt;&lt;7                         与push的不同在于push可以放多个<br />arr<span style="color: rgb(0, 0, 0);">.sort.reverse               先排序再倒置，即降序<br /></span><img src ="http://www.blogjava.net/leekiang/aggbug/315647.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/leekiang/" target="_blank">leekiang</a> 2010-03-17 00:53 <a href="http://www.blogjava.net/leekiang/archive/2010/03/17/315647.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>rcov</title><link>http://www.blogjava.net/leekiang/archive/2010/03/06/314686.html</link><dc:creator>leekiang</dc:creator><author>leekiang</author><pubDate>Sat, 06 Mar 2010 05:00:00 GMT</pubDate><guid>http://www.blogjava.net/leekiang/archive/2010/03/06/314686.html</guid><wfw:comment>http://www.blogjava.net/leekiang/comments/314686.html</wfw:comment><comments>http://www.blogjava.net/leekiang/archive/2010/03/06/314686.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/leekiang/comments/commentRss/314686.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/leekiang/services/trackbacks/314686.html</trackback:ping><description><![CDATA[1,安装rcov0.9.9,环境为ruby1.8,6,rails2.3.5<br />安装之前必须先安装DevKit，http://github.com/oneclick/rubyinstaller/wiki/Development-Kit里有详细的安装步骤<br />主要步骤:<br />1)下载DevKit解压到c:\DevKit目录，下载地址为http://rubyinstaller.org/downloads/<br />2)C:\DevKit&gt;ruby dk.rb init<br />3)C:\DevKit&gt;ruby dk.rb install<br />4)C:\DevKit&gt;gem install rdiscount --platform=ruby 我觉得这一步只是验证DevKit是否安装成功，也可以不做的。<br />5)最好把c:\DevKit\bin加到环境变量<br /><br />2,rcov test/functional/*.rb test/unit/*.rb --output=public/rcov --rails<br />会生成一大堆反映测试覆盖情况的网页放到public/rcov目录下，如果不写--output，则这些网页会放到项目下新建的coverage目录。<br /><br />3,在项目下执行rake stats可看到代码统计，以及代码和测试代码的比例。<br /><br />4,在netbeans6.9里开始怎么也显示不了覆盖率报告，后来打开一个模型类，点击执行测试，然后就有了。<br />而且可以显示每一行代码是否被测试到,看了几个类的覆盖情况，感觉有的方法里的代码明明被测了，但图形里显示没有测到。<br />http://blogs.sun.com/tor/entry/netbeans_screenshot_of_the_week6后面的评论里有人写了他是如何做的。<br /><br />http://www.jairrillo.com/blog/2008/08/18/introduction-to-rspec-part-2-testing-the-rails-model/<br />http://eigenclass.org/hiki.rb?rcov#l2<br />http://stackoverflow.com/questions/3451346/cannot-install-rcov-from-gem<img src ="http://www.blogjava.net/leekiang/aggbug/314686.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/leekiang/" target="_blank">leekiang</a> 2010-03-06 13:00 <a href="http://www.blogjava.net/leekiang/archive/2010/03/06/314686.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>rails中的REST</title><link>http://www.blogjava.net/leekiang/archive/2010/02/21/313489.html</link><dc:creator>leekiang</dc:creator><author>leekiang</author><pubDate>Sat, 20 Feb 2010 18:53:00 GMT</pubDate><guid>http://www.blogjava.net/leekiang/archive/2010/02/21/313489.html</guid><wfw:comment>http://www.blogjava.net/leekiang/comments/313489.html</wfw:comment><comments>http://www.blogjava.net/leekiang/archive/2010/02/21/313489.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/leekiang/comments/commentRss/313489.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/leekiang/services/trackbacks/313489.html</trackback:ping><description><![CDATA[http://mypages.javaeye.com/blog/291991<img src ="http://www.blogjava.net/leekiang/aggbug/313489.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/leekiang/" target="_blank">leekiang</a> 2010-02-21 02:53 <a href="http://www.blogjava.net/leekiang/archive/2010/02/21/313489.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>ruby解析html</title><link>http://www.blogjava.net/leekiang/archive/2010/02/20/313478.html</link><dc:creator>leekiang</dc:creator><author>leekiang</author><pubDate>Sat, 20 Feb 2010 10:14:00 GMT</pubDate><guid>http://www.blogjava.net/leekiang/archive/2010/02/20/313478.html</guid><wfw:comment>http://www.blogjava.net/leekiang/comments/313478.html</wfw:comment><comments>http://www.blogjava.net/leekiang/archive/2010/02/20/313478.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/leekiang/comments/commentRss/313478.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/leekiang/services/trackbacks/313478.html</trackback:ping><description><![CDATA[open-uri库是ruby的标准附加库中所带的，路径<br />C:\Ruby1.8.7\lib\ruby\1.8\open-uri.rb<br /><br /><div style="border: 1px solid rgb(204, 204, 204); padding: 4px 5px 4px 4px; background-color: rgb(238, 238, 238); font-size: 13px; width: 98%;"><!--<br><br>Code highlighting produced by Actipro CodeHighlighter (freeware)<br>http://www.CodeHighlighter.com/<br><br>--><span style="color: rgb(0, 0, 0);">require </span><span style="color: rgb(128, 0, 0);">'</span><span style="color: rgb(128, 0, 0);">open-uri</span><span style="color: rgb(128, 0, 0);">'</span><span style="color: rgb(0, 0, 0);"><br />open(</span><span style="color: rgb(128, 0, 0);">'</span><span style="color: rgb(128, 0, 0);">c:/boot.ini</span><span style="color: rgb(128, 0, 0);">'</span><span style="color: rgb(0, 0, 0);">){</span><span style="color: rgb(0, 0, 0);">|</span><span style="color: rgb(0, 0, 0);">file</span><span style="color: rgb(0, 0, 0);">|</span><span style="color: rgb(0, 0, 0);"><br />  puts file.</span><span style="color: rgb(0, 0, 255);">class</span><span style="color: rgb(0, 0, 0);">  </span><span style="color: rgb(0, 128, 0);">#</span><span style="color: rgb(0, 128, 0);">File</span><span style="color: rgb(0, 128, 0);"><br /></span><span style="color: rgb(0, 0, 0);">}<br />open(</span><span style="color: rgb(128, 0, 0);">'</span><span style="color: rgb(128, 0, 0);">http://coderlee.cnblogs.com</span><span style="color: rgb(128, 0, 0);">'</span><span style="color: rgb(0, 0, 0);">){</span><span style="color: rgb(0, 0, 0);">|</span><span style="color: rgb(0, 0, 0);">file</span><span style="color: rgb(0, 0, 0);">|</span><span style="color: rgb(0, 0, 0);"><br />  puts file.</span><span style="color: rgb(0, 0, 255);">class</span><span style="color: rgb(0, 0, 0);">  </span><span style="color: rgb(0, 128, 0);">#</span><span style="color: rgb(0, 128, 0);">Tempfile</span><span style="color: rgb(0, 128, 0);"><br /></span><span style="color: rgb(0, 0, 0);">}</span></div>可以看出，打开一个本机文件的块参数是File类型，而打开一个uri的块参数是一个Tempfile类型。还有一点要注意，就是open-uri里面的open方法会自动对302 redirection重定向地址进行追踪访问，而Net::HTTP#get方法则不会自动追踪302重定向地址。(摘自<a href="http://www.cnblogs.com/coderlee/archive/2008/04/18/1159454.html">这里</a>)<br /><br /><div style="border: 1px solid rgb(204, 204, 204); padding: 4px 5px 4px 4px; background-color: rgb(238, 238, 238); font-size: 13px; width: 98%;"><!--<br><br>Code highlighting produced by Actipro CodeHighlighter (freeware)<br>http://www.CodeHighlighter.com/<br><br>--><span style="color: rgb(0, 0, 0);">require </span><span style="color: rgb(128, 0, 0);">'</span><span style="color: rgb(128, 0, 0);">nokogiri</span><span style="color: rgb(128, 0, 0);">'</span><span style="color: rgb(0, 0, 0);"><br />require </span><span style="color: rgb(128, 0, 0);">'</span><span style="color: rgb(128, 0, 0);">open-uri</span><span style="color: rgb(128, 0, 0);">'</span><span style="color: rgb(0, 0, 0);"><br /></span><span style="color: rgb(128, 0, 0);"></span><span style="color: rgb(128, 0, 0);"></span><span style="color: rgb(128, 0, 0);"></span><span style="color: rgb(0, 0, 0);">doc </span><span style="color: rgb(0, 0, 0);">=</span><span style="color: rgb(0, 0, 0);"> Nokogiri::HTML(open(</span><span style="color: rgb(128, 0, 0);">'</span><span style="color: rgb(128, 0, 0);">http://www.huomo.cn</span><span style="color: rgb(128, 0, 0);">'</span><span style="color: rgb(0, 0, 0);">))<br />doc.search(</span><span style="color: rgb(128, 0, 0);">"</span><span style="color: rgb(128, 0, 0);">//h2/a</span><span style="color: rgb(128, 0, 0);">"</span><span style="color: rgb(0, 0, 0);">).each do </span><span style="color: rgb(0, 0, 0);">|</span><span style="color: rgb(0, 0, 0);">link</span><span style="color: rgb(0, 0, 0);">|</span><span style="color: rgb(0, 0, 0);"><br />  puts link.inner_text<br />  puts link[:href]<br />end</span></div><br /><div style="border: 1px solid rgb(204, 204, 204); padding: 4px 5px 4px 4px; background-color: rgb(238, 238, 238); font-size: 13px; width: 98%;"><!--<br><br>Code highlighting produced by Actipro CodeHighlighter (freeware)<br>http://www.CodeHighlighter.com/<br><br>--><span style="color: rgb(0, 0, 0);">url </span><span style="color: rgb(0, 0, 0);">=</span><span style="color: rgb(0, 0, 0);"> </span><span style="color: rgb(0, 0, 0);">'</span><span style="color: rgb(0, 0, 0);">http://www.google.cn/search?hl=zh-CN&amp;q=%BC%D6%B1%A6%D3%F1</span><span style="color: rgb(0, 0, 0);">'</span><span style="color: rgb(0, 0, 0);"><br />doc </span><span style="color: rgb(0, 0, 0);">=</span><span style="color: rgb(0, 0, 0);"> Nokogiri::HTML.parse(open(url), nil, </span><span style="color: rgb(0, 0, 0);">'</span><span style="color: rgb(0, 0, 0);">gb2312</span><span style="color: rgb(0, 0, 0);">'</span><span style="color: rgb(0, 0, 0);">)#不这样写会有乱码<br /><br />doc.css(</span><span style="color: rgb(0, 0, 0);">'</span><span style="color: rgb(0, 0, 0);">h3.r a.l</span><span style="color: rgb(0, 0, 0);">'</span><span style="color: rgb(0, 0, 0);">).each </span><span style="color: rgb(0, 0, 255);">do</span><span style="color: rgb(0, 0, 0);"> </span><span style="color: rgb(0, 0, 0);">|</span><span style="color: rgb(0, 0, 0);">link</span><span style="color: rgb(0, 0, 0);">|</span><span style="color: rgb(0, 0, 0);"><br />  puts link.inner_text<br />end<br /><br />doc.xpath(</span><span style="color: rgb(0, 0, 0);">'</span><span style="color: rgb(0, 0, 0);">//h3/a[@class="l"]</span><span style="color: rgb(0, 0, 0);">'</span><span style="color: rgb(0, 0, 0);">).each </span><span style="color: rgb(0, 0, 255);">do</span><span style="color: rgb(0, 0, 0);"> </span><span style="color: rgb(0, 0, 0);">|</span><span style="color: rgb(0, 0, 0);">link</span><span style="color: rgb(0, 0, 0);">|</span><span style="color: rgb(0, 0, 0);"><br />  puts link.content<br />end<br /><br />doc.search(</span><span style="color: rgb(0, 0, 0);">'</span><span style="color: rgb(0, 0, 0);">h3.r a.l</span><span style="color: rgb(0, 0, 0);">'</span><span style="color: rgb(0, 0, 0);">, </span><span style="color: rgb(0, 0, 0);">'</span><span style="color: rgb(0, 0, 0);">//h3/a[@class="l"]</span><span style="color: rgb(0, 0, 0);">'</span><span style="color: rgb(0, 0, 0);">).each </span><span style="color: rgb(0, 0, 255);">do</span><span style="color: rgb(0, 0, 0);"> </span><span style="color: rgb(0, 0, 0);">|</span><span style="color: rgb(0, 0, 0);">link</span><span style="color: rgb(0, 0, 0);">|</span><span style="color: rgb(0, 0, 0);"><br />  puts link.content<br />end</span></div><br />参考http://www.javaeye.com/topic/557485<br /><br /><img src ="http://www.blogjava.net/leekiang/aggbug/313478.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/leekiang/" target="_blank">leekiang</a> 2010-02-20 18:14 <a href="http://www.blogjava.net/leekiang/archive/2010/02/20/313478.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>rails处理长执行时间的请求</title><link>http://www.blogjava.net/leekiang/archive/2010/02/20/313430.html</link><dc:creator>leekiang</dc:creator><author>leekiang</author><pubDate>Fri, 19 Feb 2010 20:42:00 GMT</pubDate><guid>http://www.blogjava.net/leekiang/archive/2010/02/20/313430.html</guid><wfw:comment>http://www.blogjava.net/leekiang/comments/313430.html</wfw:comment><comments>http://www.blogjava.net/leekiang/archive/2010/02/20/313430.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/leekiang/comments/commentRss/313430.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/leekiang/services/trackbacks/313430.html</trackback:ping><description><![CDATA[另一个常见的问题是当应用软件要执行一个需时长的请求时，处理不当。如果实现得不好，会让处理这个web请求的handler很长时间没有反应。<br /><br />这个问题是在人机界面方面很普遍，而且也有一个普遍的解决方法 -- 把任务交给一个背景运行的过程或线程。任何开发过桌面应用的人都会觉得很熟悉。但是有时候如果开发者把切换和通信做得不好，也会碰到麻烦。<br /><br />一个我觉得较好的办法，而幸好我的ThoughtWorks同事们也同意，就是使用一个actor。在这个模型里，web请求的handler把需时长的请求包装为一个命令（command），然后放进队列（queue）内。在背景运行的actor就监察着这个queue，从queue中提出并且执行这个命令。当它把这个命令执行完了，就通知前台界面的actor。通常这个queue一开始会是数据库的一个表，之后如有需要的话，再把它改为一个消息队列（message queue）。<br /><br />和ActiveRecord的漏洞一样，我提起这个不是因为它是Rails里特有的问题；我们在各种应用也会看到同样的问题。值得在这里带出是因为用Rails的人们往往很容易忘了有这样的情况发生，也忘了有这样的模式去解决。我们发现Rails把web开发中重复又重复的环节变得简易和快，但是复杂的环节是仍然存在的。<br /><br />来源:http://rickylui.com/lionwiki/index.php?page=Ruby+at+ThoughtWorks<br />     http://martinfowler.com/articles/rubyAtThoughtWorks.html<br /><img src ="http://www.blogjava.net/leekiang/aggbug/313430.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/leekiang/" target="_blank">leekiang</a> 2010-02-20 04:42 <a href="http://www.blogjava.net/leekiang/archive/2010/02/20/313430.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>rails调试</title><link>http://www.blogjava.net/leekiang/archive/2010/02/19/313426.html</link><dc:creator>leekiang</dc:creator><author>leekiang</author><pubDate>Fri, 19 Feb 2010 15:22:00 GMT</pubDate><guid>http://www.blogjava.net/leekiang/archive/2010/02/19/313426.html</guid><wfw:comment>http://www.blogjava.net/leekiang/comments/313426.html</wfw:comment><comments>http://www.blogjava.net/leekiang/archive/2010/02/19/313426.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/leekiang/comments/commentRss/313426.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/leekiang/services/trackbacks/313426.html</trackback:ping><description><![CDATA[在netbeans6.8(使用ruby1.8.6)的一个rails项目上右键点击"调试",提示<font color="#ff0000">未安装版本与0\.4\..*模式匹配的ruby-debug-ide </font>点击"安装快速调试器",出现如下的错误:<br />------------------------------------------------------<br />Building native extensions.  This could take a while...<br />ERROR:  Error installing ruby-debug-ide:<br />    ERROR: Failed to build gem native extension.<br /><br />c:/ruby/bin/ruby.exe mkrf_conf.rb<br />Building native extensions.  This could take a while...<br /><br />Gem files will remain installed in c:/ruby/lib/ruby/gems/1.8/gems/ruby-debug-ide-0.4.9 for inspection.<br />Results logged to c:/ruby/lib/ruby/gems/1.8/gems/ruby-debug-ide-0.4.9/ext/gem_make.out<br />------------------------------------------------------<br />然后在C:\ruby\lib\ruby\gems\1.8\gems下发现了刚刚生成的ruby-debug-ide-0.4.9目录和ruby-debug-base-0.10.3目录。<br /><br />接着在cmd里gem install ruby-debug，也报错：<br />------------------------------<br />Building native extensions.  This could take a while...<br />ERROR:  Error installing ruby-debug:<br />        ERROR: Failed to build gem native extension.<br /><br />c:/ruby/bin/ruby.exe extconf.rb<br />creating Makefile<br />nmake<br />'nmake' 不是内部或外部命令，也不是可运行的程序<br />或批处理文件。<br /><br />Gem files will remain installed in c:/ruby/lib/ruby/gems/1.8/gems/ruby-debug-bas<br />e-0.10.3 for inspection.<br />Results logged to c:/ruby/lib/ruby/gems/1.8/gems/ruby-debug-base-0.10.3/ext/gem_<br />make.out<br />-------------------------------<br />然后发现ruby-debug-base-0.10.3目录重新生成了。<br /><br />现在说一下解决步骤:<br />1，下载http://rubyforge.iasi.roedu.net/gems/ruby-debug-base-0.9.3-mswin32.gem<br />   <font color="#0000ff">gem install ruby-debug-base-0.9.3-mswin32.gem</font><br />2, 去http://rubyforge.org/projects/debug-commons/下载ruby-debug-ide-0.4.6.gem<br />   <font color="#0000ff">gem install ruby-debug-ide-0.4.6.gem</font><br />   版本不能高于0.4.6,如果高了都报        <br />      ERROR: Failed to build gem native extension.<br />   0.4.7见ruby-debug-ide-0.4.7\ext\extconf.rb<br />   0.4.9见ruby-debug-ide-0.4.9\ext\mkrf_conf.rb<br />   0.4.6压根就没有ext目录<br />   有人说要装什么linecache.gem，我没安装。<br />   还有人装了ruby-debug.gem,我也没安装。<br />   在http://rubyforge.mirrors.roedu.net/gems里能找到老版本。<br /><br />感谢http://hlee.javaeye.com/blog/576237<br /><br />在netbeans里调试时发现有问题,那个绿三角不能点多了，否则会影响后面的调试。<br /><br /><br />另外不明白gem除了把文件拷到gems目录下，还做了什么。<br /><br /><br /><br />后面都是记录，仅供参考。<br />在<a href="http://giorgio-ferrara.blogspot.com/2009/11/how-to-enable-ruby-debug-in-rubymine-20_22.html">How to enable Ruby debug in RubyMine 2.0 on Windows</a>里说<br /><span style="FONT-SIZE: 85%">(If you installed Ruby with the zip binary, reinstall it using the one-click installer as found <a href="http://rubyforge.org/frs/?group_id=167">here</a>. That's because currently the ruby debugger ide only works on Windows using a RubyInstaller installation). Also verify that Ruby's root path doesn't include spaces.</span><br /><ol><li>...略<br /><span style="FONT-SIZE: 85%"></span></li><li>...略
</li><li>...略
</li><li><span style="FONT-SIZE: 85%">Open with a text editor the file <span style="FONT-FAMILY: 'courier new'">command.rb</span> that's part of the installed <span style="FONT-FAMILY: 'courier new'">ruby-debug-ide19</span> gem. In my case, that file was under folder </span><span style="FONT-SIZE: 85%"><span style="FONT-FAMILY: 'courier new'">C:\Programmi\Ruby19\lib\ruby\gems\1.9.1\gems\ruby-debug-ide19-0.4.12\lib\ruby-debug</span></span></li><li><span style="FONT-SIZE: 85%">Modify the beginning of procedure <span style="FONT-FAMILY: 'courier new'">debug_eval</span> (at line 120) so to enter a new statement between statements <span style="FONT-FAMILY: 'courier new'">str = str.to_s </span>and <span style="FONT-FAMILY: 'courier new'">max_time = 10</span>. The new statement to enter is:<span style="FONT-FAMILY: 'courier new'"><br />return "" if str == "$FILENAME"</span><br />At the end, the procedure <span style="FONT-FAMILY: 'courier new'">debug_eval</span> should begin like this:<span style="FONT-FAMILY: 'courier new'"><br />def debug_eval(str, b = get_binding)<br />  begin str = str.to_s<br />  <b>return "" if str == "$FILENAME"</b><br />  max_time = 10<br />  to_inspect = str.gsub(/\\n/, "\n")</span></span></li></ol><br />ruby-debug to Ruby 1.9<br />如果使用的是ruby1.9,则<a href="http://wiki.github.com/mark-moseley/ruby-debug/installation-ide-version">Installation: IDE version</a>和<a href="http://wiki.github.com/mark-moseley/ruby-debug/netbeans-671-ide-updates">NetBeans 6.7.1 IDE updates</a>.ruby-debug19 only works on Windows using a RubyInstaller installation,Do not install to a path that has a space inside of it.In both cases, you will also need to download and install the <a href="http://rubyforge.org/frs/download.php/62353/devkit-3.4.5r3-20090411.7z">DevKit</a>.<br />原来在<a href="http://rubyforge.org/frs/shownotes.php?release_id=38438">ruby-debug-ide 0.4.7</a> 的release notes里说了原因:<br />Patch by Mark Moseley supporting ruby-debug-base19. <br />  Dynamically installs right ruby-debug-base dependency depending on the <br />  version of a Ruby platform being used. ruby-debug-base19 is the only solution<br />  these days for 1.9 debugging, so might be temporary solution until ruby-debug<br />  projects brings official version.<br />另外参见<a href="http://www.jetbrains.net/devnet/thread/283957" target="_blank">Ruby 2.0 Beta Issue: Error installing ruby-debug-ide19</a><br />        <a href="http://jetbrains.net/devnet/message/5245791">Debug supported for ruby 1.8.7?</a><br /><br />在<a href="http://www.intellij.org.cn/bbs/viewtopic.php?f=13&amp;t=1449">从下午弄到深夜还没解决关于ruby-debug-ide的问题</a>发现有人解决了:<br />我试了下ruby1.8.6还是不行，还是报那个异常。没法换成NetBeans6.8集成的jruby，集成的jruby中自带ruby-debug-ide，OK了。在这里提示一下，不要选jruby.exe要选jruby.bat，希望对遇到同样问题的人有所帮助。<br />问题解决，解决步骤：1.下载rubyinstaller，安装；2.下载devkit，解压到根目录后，修改 “ruby路径”\devkit\msys\1.0.11\etc\fstab为<br />“ruby路径”/devkit/gcc/3.4.5/mingw32<br />“ruby路径”/devkit/msys/1.0.11/usr/local /usr/local<br />然后在命令行窗口，gem install linecache19 这个要好长时间，耐心等待。然后gem install ruby-debug-ide19，这个就快了。这就OK了，不要在rubymine中安装ruby-debug-ide19和linecache19，会报错。<br /><br /><br />某人的<a href="http://www.cnblogs.com/phaibin/archive/2009/12/04/1617022.html" target="_blank">解决办法</a>:<br />在RubyMine里调试提示需要安装ruby-debug-ide，但是安装的过程有问题，提示：<br />  ERROR: Failed to build gem native extension.<br />于是想解开gem包，把里面的extension去掉。但是编辑完之后再用winrar打包gem就认不出来了。看来压缩的格式也很重要。于是找来了tar和gzip两个工具，tar还好，用gzip解压和压缩过的文件还是认不出来。只有另想别的办法了。突然想到把文件解压之后，应该可以用gem的工具来生成一个gem安装文件吧。于是找了一篇制作gem的教程，把extension去掉之后制作了一个gem，居然可以顺序安装了。然后重新打开 RubyMine也可以调试了。<br /><br /><a href="http://old.nabble.com/Trying-to-install-ruby-debug-ide-on-jruby-1.2.0-td25339133.html" target="_blank">Trying to install ruby-debug-ide on jruby 1.2.0</a><br /><a href="http://youtrack.jetbrains.net/issue/RUBY-5341">http://youtrack.jetbrains.net/issue/RUBY-5341</a><br />好帖<a href="http://www.infoq.com/cn/articles/ruby-debuggers-survey">Ruby调试器一览</a><br />一个<a href="http://blogs.sun.com/arungupta/entry/screencast_26_develop_run_debug">视频</a><br />http://netbeans.org/kb/60/ruby/debugger-screencast.html<br /><br /><br />201010补充:<br />根本没有那么复杂,<br />装DevKit,把DevKit\bin设置为环境变量,然后就可以在netbean中安装和执行了<br /><br /><img src ="http://www.blogjava.net/leekiang/aggbug/313426.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/leekiang/" target="_blank">leekiang</a> 2010-02-19 23:22 <a href="http://www.blogjava.net/leekiang/archive/2010/02/19/313426.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>response_to等</title><link>http://www.blogjava.net/leekiang/archive/2010/02/18/313392.html</link><dc:creator>leekiang</dc:creator><author>leekiang</author><pubDate>Wed, 17 Feb 2010 18:42:00 GMT</pubDate><guid>http://www.blogjava.net/leekiang/archive/2010/02/18/313392.html</guid><wfw:comment>http://www.blogjava.net/leekiang/comments/313392.html</wfw:comment><comments>http://www.blogjava.net/leekiang/archive/2010/02/18/313392.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/leekiang/comments/commentRss/313392.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/leekiang/services/trackbacks/313392.html</trackback:ping><description><![CDATA[posts_url               http://localhost:3000/posts<br />posts_path              /posts<br />new_post_path           /posts/new<br />edit_post_path(post)    /post/:id/edit<br />redirect_to(@post)     会重定向到/post/:id吗,也就是posts_controller的show<br /><br />Expected response to be a &lt;:redirect&gt;, but was &lt;200&gt;<br />测试时报错，后发现是测试里提供的数据没有通过验证<br /><img src ="http://www.blogjava.net/leekiang/aggbug/313392.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/leekiang/" target="_blank">leekiang</a> 2010-02-18 02:42 <a href="http://www.blogjava.net/leekiang/archive/2010/02/18/313392.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>测试redmine时报gem缺失</title><link>http://www.blogjava.net/leekiang/archive/2010/02/17/313324.html</link><dc:creator>leekiang</dc:creator><author>leekiang</author><pubDate>Wed, 17 Feb 2010 12:01:00 GMT</pubDate><guid>http://www.blogjava.net/leekiang/archive/2010/02/17/313324.html</guid><wfw:comment>http://www.blogjava.net/leekiang/comments/313324.html</wfw:comment><comments>http://www.blogjava.net/leekiang/archive/2010/02/17/313324.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/leekiang/comments/commentRss/313324.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/leekiang/services/trackbacks/313324.html</trackback:ping><description><![CDATA[
		<pre style="">运行redmine的测试时报错<br />Missing these required gems:<br />  thoughtbot-shoulda  <br />  nofxx-object_daddy  <br />  mocha<br />在控制台里执行gem install mocha<br />              gem install shoulda<br />            和gem install object_daddy<br />到C:\ruby\lib\ruby\gems\1.8\gems下去看<br />发现多了object_daddy-0.4.1,shoulda-2.10.3和mocha-0.9.8这3个目录<br />再执行测试，不报缺少mocha了，但还报缺少另外两个jar<br /><br />在http://www.redmine.org/boards/2/topics/11130找到了办法<br /><font color="#0000ff">rake gems:install RAILS_ENV=test</font><br />以下是在netbeans控制台里输出的信息<br />gem.bat install thoughtbot-shoulda --source http://gems.github.com<br />Successfully installed thoughtbot-shoulda-2.10.2<br />gem.bat install nofxx-object_daddy --source http://gems.github.com<br />Successfully installed nofxx-object_daddy-0.4.1<br /><br />然后到C:\ruby\lib\ruby\gems\1.8\gems下去看，发现多了两个目录<br />nofxx-object_daddy-0.4.1和thoughtbot-shoulda-2.10.2,<br />奇怪的是与前面相比，目录名和大小都变了。<br /></pre>
<img src ="http://www.blogjava.net/leekiang/aggbug/313324.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/leekiang/" target="_blank">leekiang</a> 2010-02-17 20:01 <a href="http://www.blogjava.net/leekiang/archive/2010/02/17/313324.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>ruby笔记</title><link>http://www.blogjava.net/leekiang/archive/2010/02/17/313261.html</link><dc:creator>leekiang</dc:creator><author>leekiang</author><pubDate>Wed, 17 Feb 2010 03:47:00 GMT</pubDate><guid>http://www.blogjava.net/leekiang/archive/2010/02/17/313261.html</guid><wfw:comment>http://www.blogjava.net/leekiang/comments/313261.html</wfw:comment><comments>http://www.blogjava.net/leekiang/archive/2010/02/17/313261.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/leekiang/comments/commentRss/313261.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/leekiang/services/trackbacks/313261.html</trackback:ping><description><![CDATA[1,在ruby中,一个方法的最后一个表达式求值所得的值就是该方法的返回值,这时可以去掉return<br />2,ruby的符号(symbol)<br />  symbol都以冒号作为前缀。rails常常用符号来给方法参数命名,以及用作hash的键。譬如说:<br />  <font color="#0000ff">redirect_to :action=&gt;"edit",:id=&gt;params[:id]</font><br />3,<div style="border: 1px solid rgb(204, 204, 204); padding: 4px 5px 4px 4px; background-color: rgb(238, 238, 238); font-size: 13px; width: 98%;"><!--<br><br>Code highlighting produced by Actipro CodeHighlighter (freeware)<br>http://www.CodeHighlighter.com/<br><br>--><span style="color: rgb(0, 0, 255);">class</span><span style="color: rgb(0, 0, 0);"> Order </span><span style="color: rgb(0, 0, 0);">&lt;</span><span style="color: rgb(0, 0, 0);"> ActiveRecord::Base<br /> has_many :line_items<br /> <br /> </span><span style="color: rgb(0, 0, 255);">def</span><span style="color: rgb(0, 0, 0);"> self.find_all_unpaid<br />   find(:all, </span><span style="color: rgb(128, 0, 0);">'</span><span style="color: rgb(128, 0, 0);">paid = 0</span><span style="color: rgb(128, 0, 0);">'</span><span style="color: rgb(0, 0, 0);"> )<br /> end<br /><br /> </span><span style="color: rgb(0, 0, 255);">def</span><span style="color: rgb(0, 0, 0);"> total<br />   sum </span><span style="color: rgb(0, 0, 0);">=</span><span style="color: rgb(0, 0, 0);"> 0<br />   line_items.each {</span><span style="color: rgb(0, 0, 0);">|</span><span style="color: rgb(0, 0, 0);">li</span><span style="color: rgb(0, 0, 0);">|</span><span style="color: rgb(0, 0, 0);"> sum </span><span style="color: rgb(0, 0, 0);">+=</span><span style="color: rgb(0, 0, 0);"> li.total}<br /> end<br />end</span></div>在方法前加上"self.",该方法就变为类方法，可以在类层面上直接调用:<font color="#0000ff">Order.find_all_unpaid</font><br /><br />4,实例变量的名字以"@"开头<br />5,在rails项目下<font color="#0000ff">rake doc:app</font>可以为rails项目创建html格式的文档,放在doc/app目录里。<br />6,模块(module)与类差不多，区别是无法创建模块的实例。<br />  我的感觉就是module是代码片段，可以在任何类里引入作为该类的一部分。<br /><img src ="http://www.blogjava.net/leekiang/aggbug/313261.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/leekiang/" target="_blank">leekiang</a> 2010-02-17 11:47 <a href="http://www.blogjava.net/leekiang/archive/2010/02/17/313261.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>rails功能测试</title><link>http://www.blogjava.net/leekiang/archive/2010/02/15/313139.html</link><dc:creator>leekiang</dc:creator><author>leekiang</author><pubDate>Mon, 15 Feb 2010 11:22:00 GMT</pubDate><guid>http://www.blogjava.net/leekiang/archive/2010/02/15/313139.html</guid><wfw:comment>http://www.blogjava.net/leekiang/comments/313139.html</wfw:comment><comments>http://www.blogjava.net/leekiang/archive/2010/02/15/313139.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/leekiang/comments/commentRss/313139.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/leekiang/services/trackbacks/313139.html</trackback:ping><description><![CDATA[
		<pre>
				<font color="#0000ff">assert_select</font>
				<font color="#0000ff">assert_not_nil assigns(:people)</font>
				<br />
				<strong>assigns</strong>是一个特殊的变量。如果您在控制器中创建了一个实例变量，那么这个变量<br />就可以直接在视图模板中使用。这一机制背后的原理其实很简单：Rails首先通过反射<br />将控制器中的变量拷贝到一个容器中，其后又将该容器中的变量拷贝回视图实例。<br />而这个容器其实就是上面提到的<strong>assigns</strong>，所以前面的断言可以被理解为“控制器应该<br />创建一个名为<strong>people</strong>的非空变量”。<br /><br />http://www.javaeye.com/topic/481193<br />http://www.infoq.com/cn/articles/rails-for-java-excerpt<br />http://www.ibm.com/developerworks/cn/web/wa-rails4/<br />http://www.blogjava.net/cap/articles/rails_test.html<br /><br />新书<em>Rails Test Prescriptions</em></pre>
<img src ="http://www.blogjava.net/leekiang/aggbug/313139.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/leekiang/" target="_blank">leekiang</a> 2010-02-15 19:22 <a href="http://www.blogjava.net/leekiang/archive/2010/02/15/313139.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Flash—“动作”间的通信</title><link>http://www.blogjava.net/leekiang/archive/2010/02/15/313136.html</link><dc:creator>leekiang</dc:creator><author>leekiang</author><pubDate>Mon, 15 Feb 2010 10:34:00 GMT</pubDate><guid>http://www.blogjava.net/leekiang/archive/2010/02/15/313136.html</guid><wfw:comment>http://www.blogjava.net/leekiang/comments/313136.html</wfw:comment><comments>http://www.blogjava.net/leekiang/archive/2010/02/15/313136.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/leekiang/comments/commentRss/313136.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/leekiang/services/trackbacks/313136.html</trackback:ping><description><![CDATA[通常，更新操作在结束时会重定向到其它action。那么如何在重定向过程中保证状态消息不会丢失呢？如果将状态消息保存到成员变量中，会导致这一消息在
重定向后丢失。而使用session来作为保存机制虽然可行，但开发人员必须在随后执行清理session这一很容易被遗漏的操作。因此，Rails提供
了flash作为解决方案。使用flash时，消息首先被保存到session中，以便本次重定向可以使用。而在下一次重定向后，Rails会自动在
session中清理该消息。从而有效地解决了更新操作的状态信息在重定向时的保存问题。<br />http://www.infoq.com/cn/articles/rails-for-java-excerpt<br />http://jbf034.javaeye.com/blog/222730<img src ="http://www.blogjava.net/leekiang/aggbug/313136.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/leekiang/" target="_blank">leekiang</a> 2010-02-15 18:34 <a href="http://www.blogjava.net/leekiang/archive/2010/02/15/313136.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>“过滤器”(before,after,around)</title><link>http://www.blogjava.net/leekiang/archive/2010/02/15/313137.html</link><dc:creator>leekiang</dc:creator><author>leekiang</author><pubDate>Mon, 15 Feb 2010 10:34:00 GMT</pubDate><guid>http://www.blogjava.net/leekiang/archive/2010/02/15/313137.html</guid><wfw:comment>http://www.blogjava.net/leekiang/comments/313137.html</wfw:comment><comments>http://www.blogjava.net/leekiang/archive/2010/02/15/313137.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/leekiang/comments/commentRss/313137.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/leekiang/services/trackbacks/313137.html</trackback:ping><description><![CDATA[http://jbf034.javaeye.com/blog/222755<img src ="http://www.blogjava.net/leekiang/aggbug/313137.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/leekiang/" target="_blank">leekiang</a> 2010-02-15 18:34 <a href="http://www.blogjava.net/leekiang/archive/2010/02/15/313137.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Rails for Java Developers</title><link>http://www.blogjava.net/leekiang/archive/2010/02/15/313066.html</link><dc:creator>leekiang</dc:creator><author>leekiang</author><pubDate>Sun, 14 Feb 2010 19:19:00 GMT</pubDate><guid>http://www.blogjava.net/leekiang/archive/2010/02/15/313066.html</guid><wfw:comment>http://www.blogjava.net/leekiang/comments/313066.html</wfw:comment><comments>http://www.blogjava.net/leekiang/archive/2010/02/15/313066.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/leekiang/comments/commentRss/313066.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/leekiang/services/trackbacks/313066.html</trackback:ping><description><![CDATA[
		<a href="http://www.infoq.com/cn/articles/rails-for-java-excerpt">Java开发者的Rails之路</a>
		<br />
		<a target="_blank" href="http://www.pragprog.com/titles/fr_r4j/rails-for-java-developers">Rails for Java Developers</a>
		<br />
<img src ="http://www.blogjava.net/leekiang/aggbug/313066.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/leekiang/" target="_blank">leekiang</a> 2010-02-15 03:19 <a href="http://www.blogjava.net/leekiang/archive/2010/02/15/313066.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>rails应用的认证和授权</title><link>http://www.blogjava.net/leekiang/archive/2010/02/14/313003.html</link><dc:creator>leekiang</dc:creator><author>leekiang</author><pubDate>Sun, 14 Feb 2010 13:00:00 GMT</pubDate><guid>http://www.blogjava.net/leekiang/archive/2010/02/14/313003.html</guid><wfw:comment>http://www.blogjava.net/leekiang/comments/313003.html</wfw:comment><comments>http://www.blogjava.net/leekiang/archive/2010/02/14/313003.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/leekiang/comments/commentRss/313003.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/leekiang/services/trackbacks/313003.html</trackback:ping><description><![CDATA[
		<a href="http://blog.csdn.net/cheng5128/archive/2009/07/01/4613851.aspx"> 一个带完整的RBAC授权系统的rails应用</a>
		<br />http://www.javaeye.com/topic/215074<br /><br />RESTful_ACL<br /><br /><br />declarative_authorization<br />aegis<br />cancan           http://github.com/ryanb/cancan<br />Authologic<br />acl9             http://github.com/be9/acl9<br />role_requirement http://github.com/timcharper/role_requirement<br />ActiveRbac<br /><br /><br /><span style="">restful_authentication</span><br />1，ruby script/plugin install http://svn.techno-weenie.net/projects/plugins/restful_authentication/<br />项目右键-&gt;rails 插件-&gt;资源库里添加url：http://svn.techno-weenie.net/projects/plugins<br />-&gt;新插件里找到<span style="">restful_authentication然后安装</span><br /><span style="">2, ruby script/generate authenticated user sessions<br /></span><span>Right-click on your application in the projects pane and choose  
</span><br /><span style="">"Generate". In the dialog box that comes up, choose "authenticated"  
</span><br /><span>from the drop-down "Generator" menu near the top, and in the arguments  
</span><br /><span style="">field enter "user sessions" (without the quotes). Hit OK.
</span><br />----------------------------------------------------------------------<br />Don't forget to:<br /><br />Try these for some familiar login URLs if you like:<br /><br />map.activate '/activate/:activation_code', :controller =&gt; 'users', :action =&gt; 'activate', :activation_code =&gt; nil<br />map.signup '/signup', :controller =&gt; 'users', :action =&gt; 'new'<br />map.login '/login', :controller =&gt; 'sessions', :action =&gt; 'new'<br />map.logout '/logout', :controller =&gt; 'sessions', :action =&gt; 'destroy'<br /><br />----------------------------------------------------------------------<br />      create  app/views/sessions<br />      create  app/views/users<br />      create  app/models/user.rb<br />      create  app/controllers/sessions_controller.rb<br />      create  app/controllers/users_controller.rb<br />      create  lib/authenticated_system.rb<br />      create  lib/authenticated_test_helper.rb<br />      create  test/functional/sessions_controller_test.rb<br />      create  test/functional/users_controller_test.rb<br />      create  test/unit/user_test.rb<br />      create  test/fixtures/users.yml<br />      create  app/helpers/sessions_helper.rb<br />      create  app/helpers/users_helper.rb<br />      create  app/views/sessions/new.html.erb<br />      create  app/views/users/new.html.erb<br />      create  db/migrate/20100218184435_create_users.rb<br />      route  map.resource :session<br />      route  map.resources :users<br /><br />运行测试时要把SessionsControllerTest和UsersControllerTest都改为继承ActionController::TestCase,同时把fixtures :users注释掉。<br /><br />要使用current_user和logged_in? helper方法的话要在ApplicationController里<span style="">include AuthenticatedSystem  </span><br /><br />resource与resources的区别见http://api.rubyonrails.org/classes/ActionController/Resources.html<br /><br />http://www.javaeye.com/topic/353831<br />http://www.javaeye.com/topic/177508<br />http://hideto.javaeye.com/blog/115157<br />https://github.com/nakajima/roleful<br /><img src ="http://www.blogjava.net/leekiang/aggbug/313003.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/leekiang/" target="_blank">leekiang</a> 2010-02-14 21:00 <a href="http://www.blogjava.net/leekiang/archive/2010/02/14/313003.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>rails2.3与2.2的区别</title><link>http://www.blogjava.net/leekiang/archive/2010/02/14/312962.html</link><dc:creator>leekiang</dc:creator><author>leekiang</author><pubDate>Sun, 14 Feb 2010 10:51:00 GMT</pubDate><guid>http://www.blogjava.net/leekiang/archive/2010/02/14/312962.html</guid><wfw:comment>http://www.blogjava.net/leekiang/comments/312962.html</wfw:comment><comments>http://www.blogjava.net/leekiang/archive/2010/02/14/312962.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/leekiang/comments/commentRss/312962.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/leekiang/services/trackbacks/312962.html</trackback:ping><description><![CDATA[http://www.pragprog.com/wikis/wiki/ChangesInRails23<br />1， app/controllers下的application.rb is now application_controller.rb<img src ="http://www.blogjava.net/leekiang/aggbug/312962.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/leekiang/" target="_blank">leekiang</a> 2010-02-14 18:51 <a href="http://www.blogjava.net/leekiang/archive/2010/02/14/312962.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>rails主题(theme)</title><link>http://www.blogjava.net/leekiang/archive/2010/02/14/312950.html</link><dc:creator>leekiang</dc:creator><author>leekiang</author><pubDate>Sun, 14 Feb 2010 10:28:00 GMT</pubDate><guid>http://www.blogjava.net/leekiang/archive/2010/02/14/312950.html</guid><wfw:comment>http://www.blogjava.net/leekiang/comments/312950.html</wfw:comment><comments>http://www.blogjava.net/leekiang/archive/2010/02/14/312950.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/leekiang/comments/commentRss/312950.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/leekiang/services/trackbacks/312950.html</trackback:ping><description><![CDATA[1,http://kyoleelqh.javaeye.com/blog/169857<br /><br />2,<a href="http://quotedprintable.com/pages/scribbish">Scribbish</a><img src ="http://www.blogjava.net/leekiang/aggbug/312950.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/leekiang/" target="_blank">leekiang</a> 2010-02-14 18:28 <a href="http://www.blogjava.net/leekiang/archive/2010/02/14/312950.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>rails3</title><link>http://www.blogjava.net/leekiang/archive/2010/02/14/312936.html</link><dc:creator>leekiang</dc:creator><author>leekiang</author><pubDate>Sun, 14 Feb 2010 09:58:00 GMT</pubDate><guid>http://www.blogjava.net/leekiang/archive/2010/02/14/312936.html</guid><wfw:comment>http://www.blogjava.net/leekiang/comments/312936.html</wfw:comment><comments>http://www.blogjava.net/leekiang/archive/2010/02/14/312936.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/leekiang/comments/commentRss/312936.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/leekiang/services/trackbacks/312936.html</trackback:ping><description><![CDATA[http://m.onkey.org/2010/1/22/active-record-query-interface<br />http://www.pragprog.com/wikis/wiki/ChangesInRails30<br /><img src ="http://www.blogjava.net/leekiang/aggbug/312936.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/leekiang/" target="_blank">leekiang</a> 2010-02-14 17:58 <a href="http://www.blogjava.net/leekiang/archive/2010/02/14/312936.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>rails调试以及日志</title><link>http://www.blogjava.net/leekiang/archive/2010/02/14/312881.html</link><dc:creator>leekiang</dc:creator><author>leekiang</author><pubDate>Sat, 13 Feb 2010 18:24:00 GMT</pubDate><guid>http://www.blogjava.net/leekiang/archive/2010/02/14/312881.html</guid><wfw:comment>http://www.blogjava.net/leekiang/comments/312881.html</wfw:comment><comments>http://www.blogjava.net/leekiang/archive/2010/02/14/312881.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/leekiang/comments/commentRss/312881.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/leekiang/services/trackbacks/312881.html</trackback:ping><description><![CDATA[1，要在控制台输出log,在environment.rb里加:<br />config.log_level = :debug<br />config.logger = Logger.new(STDERR)<br />同时在controller里加一行logger.info 'test'<br />成功了，但奇怪的是log_level设为dubug和info没有区别<br /><br />2, http://wordpress.javaeye.com/blog/134544<br />rails的日志文件存在于app/log下面。对于不同环境产生的日志内容会有差别。development下会把每次对数据库的访问代码包含进去，production会省略，不过也有很多的内容。

<font style="" color="#0080ff">如果只希望在production环境下，输入少量的log,
则只需要在config/environments/production.rb中更改：</font><font color="#0080ff"><br />config.log_level = :warn</font><br /><font color="#0080ff">附带log level:</font><br />Rails可以通过选择不同的log
level来控制log文件的输出，可以使用的log level有:debug, :info,
:warn, :error, :fatal。 :debug level提供最详细的log,
可以将每一条sql都记录下来。:info
level是production环境下的默认设置，不会写出sql的执行情况，但也会很详细，如果是ActiveMailer，它会记录下每封信的内容，Log文件内容就是快速增长。为了避免Log把空间塞满的情况发生，要注意定期清除Log，另外是选择:warn
level等log level, 只记录重要的信息.<div><p>是否可以这么说：environment.rb对三个环境都生效,<font style="" color="#0080ff">production.rb只对生产环境有效.</font></p></div><br />3，在单元测试类的方法里加了logger.dubug 'test'，执行测试时报错，后改为<br />RAILS_DEFAULT_LOGGER.debug 'test' 成功。<br /><br /><br />Rails Logging Tips —— Rails写日志的提示http://www.cgpad.com/SPAN/articles_show/167<br />http://hlee.javaeye.com/blog/358516<br /><img src ="http://www.blogjava.net/leekiang/aggbug/312881.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/leekiang/" target="_blank">leekiang</a> 2010-02-14 02:24 <a href="http://www.blogjava.net/leekiang/archive/2010/02/14/312881.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>rails事务</title><link>http://www.blogjava.net/leekiang/archive/2010/02/14/312873.html</link><dc:creator>leekiang</dc:creator><author>leekiang</author><pubDate>Sat, 13 Feb 2010 17:04:00 GMT</pubDate><guid>http://www.blogjava.net/leekiang/archive/2010/02/14/312873.html</guid><wfw:comment>http://www.blogjava.net/leekiang/comments/312873.html</wfw:comment><comments>http://www.blogjava.net/leekiang/archive/2010/02/14/312873.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/leekiang/comments/commentRss/312873.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/leekiang/services/trackbacks/312873.html</trackback:ping><description><![CDATA[
		<div>1,around_filter进行action的自动事务处理<br />在controller里面可以使用around_filter来进行action的包装，当action中弹出异常的时候渲染一个特殊的出错
页面。将action代码包装在ActiveRecord::Base.transaction函数的block中执行，当引发异常后截获并重新抛出一个
ActiveRecord::Rollback异常让rails将数据回滚掉。ActiveRecord::Base.transaction对
ActiveRecord::Rollback异常处理后不会再将该异常往外面抛。</div>
		<div>
				<br />
		</div>
		<div>
				<div>around_filter :around_action_filter</div>
				<div>
						<span class="Apple-tab-span" style="white-space: pre;">
						</span>
				</div>
				<div>protected</div>
				<div>
						<span class="Apple-tab-span" style="white-space: pre;">
						</span>def transaction</div>
				<div>
						<span class="Apple-tab-span" style="white-space: pre;">
						</span>ret = true</div>
				<div>
						<span class="Apple-tab-span" style="white-space: pre;">
						</span>
				</div>
				<div>
						<span class="Apple-tab-span" style="white-space: pre;">
						</span>ActiveRecord::Base.transaction do</div>
				<div>
						<span class="Apple-tab-span" style="white-space: pre;">
						</span>begin</div>
				<div>
						<span class="Apple-tab-span" style="white-space: pre;">
						</span>yield if block_given?</div>
				<div>
						<span class="Apple-tab-span" style="white-space: pre;">
						</span>rescue Exception =&gt; ex</div>
				<div>
						<span class="Apple-tab-span" style="white-space: pre;">
						</span>set_notice(ex.message)</div>
				<div>
						<span class="Apple-tab-span" style="white-space: pre;">
						</span>ret = ex.message</div>
				<div>
						<span class="Apple-tab-span" style="white-space: pre;">
						</span>raise ActiveRecord::Rollback, ex.message</div>
				<div>
						<span class="Apple-tab-span" style="white-space: pre;">
						</span>end</div>
				<div>
						<span class="Apple-tab-span" style="white-space: pre;">
						</span>end</div>
				<div>
						<span class="Apple-tab-span" style="white-space: pre;">
						</span>
				</div>
				<div>
						<span class="Apple-tab-span" style="white-space: pre;">
						</span>return ret</div>
				<div>
						<span class="Apple-tab-span" style="white-space: pre;">
						</span>end</div>
				<div>
						<span class="Apple-tab-span" style="white-space: pre;">
						</span>
				</div>
				<div>
						<span class="Apple-tab-span" style="white-space: pre;">
						</span>def around_action_filter</div>
				<div>
						<span class="Apple-tab-span" style="white-space: pre;">
						</span>return yield if request.get?<span class="Apple-tab-span" style="white-space: pre;"></span></div>
				<div>
						<span class="Apple-tab-span" style="white-space: pre;">
						</span>redirect_to(:controller =&gt; "error_display", :action =&gt; "error_notice") if </div>
				<div>
						<span class="Apple-tab-span" style="white-space: pre;">
						</span>transaction { yield if block_given? } != true</div>
				<div>
						<span class="Apple-tab-span" style="white-space: pre;">
						</span>end</div>
				<div>
						<br />
				</div>
				<div>这里的transaction函数可以用在action里面作为手动事务处理的解决办法。<br />http://www.cgpad.com/SPAN/articles_show/940<br /></div>
		</div>
<img src ="http://www.blogjava.net/leekiang/aggbug/312873.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/leekiang/" target="_blank">leekiang</a> 2010-02-14 01:04 <a href="http://www.blogjava.net/leekiang/archive/2010/02/14/312873.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>netbeans下使用ruby和rails</title><link>http://www.blogjava.net/leekiang/archive/2010/02/13/312844.html</link><dc:creator>leekiang</dc:creator><author>leekiang</author><pubDate>Sat, 13 Feb 2010 10:34:00 GMT</pubDate><guid>http://www.blogjava.net/leekiang/archive/2010/02/13/312844.html</guid><wfw:comment>http://www.blogjava.net/leekiang/comments/312844.html</wfw:comment><comments>http://www.blogjava.net/leekiang/archive/2010/02/13/312844.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/leekiang/comments/commentRss/312844.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/leekiang/services/trackbacks/312844.html</trackback:ping><description><![CDATA[在http://zh-cn.netbeans.org/kb/docs/ruby/rapid-ruby-weblog.html讲了如何一步一步创建一个最简单的应用。步骤如下:<br /><font color="#0000ff">1 在netbeans里建一个rails项目</font>,名为<code style="">rubyweblog</code><br /><font color="#0000ff">2 使用Scaffold生成post模型的全套文件</font>.在"项目"窗口的<code style="">rubyweblog</code><code>项目上</code>右键 ，点击生成(generate),在“Rails 生成器”对话框中，从“生成”下拉列表中选择 "scaffold",在“模型名称”文本框中键入 <code style="">Post,</code>在“属性对”文本框中键入 <code>title:string</code> 并单击“确定”按钮。<br />  语法:<font color="#0000ff">script/generate scaffold ModelName [field:type field:type]</font><br /><font color="#0000ff">3 生成数据库和表</font><br />  在“项目”窗口中，右键单击 rubyweblog 项目节点，然后从弹出式菜单中选择“运行/调试 Rake 任务”,从“匹配任务”列表中选择 db:create 并单击“完成”,这时会在mysql中生成开发库.这一步也可以手工做,也就相当于<font color="#0000ff">rake db:create</font><br />  在“项目”窗口中，右键单击 rubyweblog 节点并选择“迁移数据库”&gt;“至当前版本”,这样会生成表结构。<br /><font color="#0000ff">4 修改"routes.rb"</font> , 找到<font color="#ff1493"># map.root :controller =&gt; "welcome"</font> 这一行,取消注释该行并将控制器更改为 <code style="">"posts"</code>。删除public下的<code>index.html</code>，Rails 将在 <code>routes.rb</code> 中寻找需要显示的页面。然后就可以运行了。<br /><font color="#0000ff">5 向posts 表中添加一个<code style="">body</code>字段</font><br />  右键单击“数据库迁移”节点，并从弹出菜单中选择“生成”,这将打开“Rails 生成器”对话框，它已经在“生成”下拉列表中选择了迁移(migration),当然也可以在项目上右键&gt;生成&gt;migration。<br />  在“参数”文本框中输入 <code style="">AddBodyToPost body:text</code>,其他默认，单击“确定”。<font color="#ff0000">这个<code style="">"AddBodyToPost</code>"只是一个名字。</font><br />  IDE会创建一个受版本控制的迁移脚本。该脚本的名称以日期和时间开头，并以 <code style="">add_body_to_post.rb</code> 结束。在项目上右键选择“迁移数据库”&gt;“至当前版本”，或者在源文件中右键点击“运行文件”（<font color="#ff0000">这时要小心，可能会造成数据丢失</font>）<br />  修改new.html.erb、edit.html.erb和show.html.erb,增加与新字段相关的网页代码。<br /><br />生成测试库与生成开发库类似，在“项目”窗口中，右键单击 rubyweblog项目，然后选择“运行/调试 Rake 任务”，在“参数”文本框中键入 <font color="#0000ff"><tt style="">RAILS_ENV=test</tt></font>,找到并双击 db:create 条目，以运行任务，从而创建 rubyweblog_test 数据库.接着找到并双击 db:test:prepare 条目。<font color="#ff0000">我觉得 db:test:prepare 可以不执行，因为点击项目右键"测试"时会自动执行db:test:prepare和rake db:fixtures:load</font>。<br /><br />http://cn.oiax.jp/rails/rails_step_by_step/rails_step1.html说了config/routes.rb末尾附近的以下两行可以删掉，试了果然如此 <br />map.connect ':controller/:action/:id'<br />map.connect ':controller/:action/:id.:format'<br /><br /><br />http://zh-cn.netbeans.org/kb/docs/ruby/quickstart.html<br /><br /><img src ="http://www.blogjava.net/leekiang/aggbug/312844.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/leekiang/" target="_blank">leekiang</a> 2010-02-13 18:34 <a href="http://www.blogjava.net/leekiang/archive/2010/02/13/312844.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>rake,gem</title><link>http://www.blogjava.net/leekiang/archive/2010/02/13/312843.html</link><dc:creator>leekiang</dc:creator><author>leekiang</author><pubDate>Sat, 13 Feb 2010 10:32:00 GMT</pubDate><guid>http://www.blogjava.net/leekiang/archive/2010/02/13/312843.html</guid><wfw:comment>http://www.blogjava.net/leekiang/comments/312843.html</wfw:comment><comments>http://www.blogjava.net/leekiang/archive/2010/02/13/312843.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/leekiang/comments/commentRss/312843.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/leekiang/services/trackbacks/312843.html</trackback:ping><description><![CDATA[1,<br />ruby之间的引用全部是源代码的引用，为了规范类库的管理，gems出现了。
<br />gems是ruby源代码管理工具，代码按照一定的目录结构被组织成一个lib。<br />详见http://www.javaeye.com/topic/320384<br />Gem是第三方Ruby库，netbeans提供了Ruby Gems管理器，可以用来添加和维护gem,Tools &gt; Ruby Gems。<br />rails和rake等都被rubygems管理。<br /><br /><span><span style=""><br />  查看本机的gems:  gem list --local  <br /> 
</span></span>看看rubyforge.org上的gems: 
<span><span style="">gem list --remote</span></span><br />  删除某个版本的gem，例如gem uninstall rails -v=2.3.4<br /><br />有一本书叫&lt;Ruby Gems开发实战&gt;<br /><br />2,<br />Rake(http://rake.rubyforge.org)是一门构建语言，和make(www.gnu.org/software/make/)<br />
ant(http://ant.apache.org)很相像。Rake是用Ruby写的，它支持它自己的DSL用来处理和维护<br />
Ruby应用程序。Rails用rake的扩展来完成多种不同的任务.<br />详见http://www.javaeye.com/topic/300375<br />rake教程:http://railsenvy.com/2007/6/11/ruby-on-rails-rake-tutorial<br />    翻译:http://hi.baidu.com/%D0%C7203/blog/item/ebda2dd09f1d698ea1ec9c7a.html<br /><span><span style=""><br /><br /></span></span><span><span style=""></span></span><img src ="http://www.blogjava.net/leekiang/aggbug/312843.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/leekiang/" target="_blank">leekiang</a> 2010-02-13 18:32 <a href="http://www.blogjava.net/leekiang/archive/2010/02/13/312843.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>netbeans笔记</title><link>http://www.blogjava.net/leekiang/archive/2009/02/14/254629.html</link><dc:creator>leekiang</dc:creator><author>leekiang</author><pubDate>Fri, 13 Feb 2009 17:17:00 GMT</pubDate><guid>http://www.blogjava.net/leekiang/archive/2009/02/14/254629.html</guid><wfw:comment>http://www.blogjava.net/leekiang/comments/254629.html</wfw:comment><comments>http://www.blogjava.net/leekiang/archive/2009/02/14/254629.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/leekiang/comments/commentRss/254629.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/leekiang/services/trackbacks/254629.html</trackback:ping><description><![CDATA[1,快捷键<br />  代码自动完成:Ctrl+反斜线<br /><br /><br /><br />2,设置<br />  1)如果觉得NetBeans缺省的工具栏按钮太大，可以右键点击工具栏，从下拉菜单中选择Small Toolbar Icons<br />还可以选择"内存"，会在工具栏显示内存占用情况。<br />  2)设置字体:<br />Tools-&gt;Options-&gt;Fonts &amp; Colors,在左边的类别Category下选择缺省(Default),再选择字体，然后保存。(一定要选一个Category，因为刚进来时默认的类别是"空白"，会导致换了字体也不会生效)。可能中文会乱码,所以还要修改Comment,String这两个类别。<br />我的字体设置<br />languages:all languages
<br />Category:Default   Font:Courier New 13<br />Category:Comment   Font:Dialog 12<br />Category:String    Font:Dialog 12<br />  3)控制台出现乱码<br />在Netbeans的安装目录下的etc目录下有一个netbeans.conf，<font color="#000000">在</font><font size="2" color="#000000"></font><font size="2" color="#333399"><font style="" color="#000000">netbeans_default_options引号内加上</font></font><font size="2" color="#333399"><font color="#ff6600">"-J-Dfile.encoding=UTF-8" <font style="" color="#000000">就可以了! 其它比如字体大小也可以在这里调整.如: --font-size:12就可以了!<br /></font></font></font>-J-Duser.language=en -J-Duser.country=US 英文界面启动<br />  4)erb文件<br /># coding: utf-8<br /><br />在"项目"窗口中显示物理结构(默认是逻辑结构):<br />tools-&gt;Miscellaneous(其他)-&gt;ruby标签页-&gt;取消"显示逻辑项目视图"，然后重启。<br /><br />3,<br />maven风格的项目结构 http://www.javaeye.com/topic/274136?page=5<br /><br />4，与eclipse共享工程<br />http://tech.ddvip.com/2008-12/122916148599857.html<br />http://tech.ddvip.com/2008-12/122880588198603.html<br /><br />5，有人说在linux下这样设置一下界面比较好看：<br />在netbeans 在安装目录下找到 etc/netbeans.conf   然后在netbeans_default_options 添加参数 <br />-J-Dswing.aatext=true
 --locale en:US <br />  来源:http://www.blogjava.net/gml520/archive/2010/04/16/318507.html<br /><img src ="http://www.blogjava.net/leekiang/aggbug/254629.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/leekiang/" target="_blank">leekiang</a> 2009-02-14 01:17 <a href="http://www.blogjava.net/leekiang/archive/2009/02/14/254629.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>rails记录</title><link>http://www.blogjava.net/leekiang/archive/2008/12/03/244052.html</link><dc:creator>leekiang</dc:creator><author>leekiang</author><pubDate>Tue, 02 Dec 2008 18:53:00 GMT</pubDate><guid>http://www.blogjava.net/leekiang/archive/2008/12/03/244052.html</guid><wfw:comment>http://www.blogjava.net/leekiang/comments/244052.html</wfw:comment><comments>http://www.blogjava.net/leekiang/archive/2008/12/03/244052.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/leekiang/comments/commentRss/244052.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/leekiang/services/trackbacks/244052.html</trackback:ping><description><![CDATA[1,在以下的文章中找到bort这个rails应用<br />http://www.railsinside.com/elsewhere/100-7-barebones-rails-apps-to-kick-start-your-development-process.html<br />  下载bort，放到netbeans6.5中，设置为主项目，启动报错，第一次报capistrano的错误，我在environment.rb中把那几个config.gem屏蔽了。接着又报 <font color="#ff0000">`<em>load_missing_constant</em>': <em></em>uninitialized constant Authorization::AasmRoles::AASM (NameError) </font>，我照着http://rails_security.lighthouseapp.com/projects/15332/tickets/10-uninitialized-constant-authorization-aasmroles-aasm-nameerror这个链接里的做法<br />在application.rb的ApplicationController里加了一行<font color="#0000ff">require 'aasm'，<font color="#000000">然后就可以启动了。执行ruby db/migrate,重启后，首页能进，但注册一个用户提交后报</font></font><code><br /></code><font color="#ff0000">Called id for nil, which would mistakenly be 4 -- if you really <code>wanted the id of nil, use object_id<br /></code></font><i>这个发生在app/views/users/new.html.erb</i><br />暂时就到这里了，以上大多不懂，先作个记录。<br /><br />2，这是一个基于2.2.2的例子,名叫starter<br />http://github.com/josevalim/starter/tree/master/app<br />可以在github里搜2.2.2，或在code search里搜索RAILS_GEM_VERSION = '2.2.2'，以寻找基于2.2.2的例子。<br />http://github.com/brainopia/shop/tree/master<br />http://github.com/ccjr/play-eoj/tree/master<br />http://github.com/Radar/rboard/tree/master<br />http://github.com/rbarazi/simple_blog/tree/master<br />http://github.com/csiszarattila/webshop/tree/master<br />http://github.com/bushymark/depot/tree/master<br /><br />运行starter,却报<br />  <font color="#ff0000">Missing these required gems:<br />  win32console<br />  ruby-debug<br />  ruby-prof</font><br />然后<br />starter&gt;rake gems:install<br />(in c:/starter)<br /><font color="#ff0000">rake aborted!<br />no such file to load -- spec/rake/spectask<br />C: /starter/rakefile:10<br />(See full trace by running task with --trace)</font><br /><font color="#ff0000"><code><font color="#000000"><br /></font></code></font><img src ="http://www.blogjava.net/leekiang/aggbug/244052.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/leekiang/" target="_blank">leekiang</a> 2008-12-03 02:53 <a href="http://www.blogjava.net/leekiang/archive/2008/12/03/244052.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>rails知名应用和工具</title><link>http://www.blogjava.net/leekiang/archive/2008/12/01/243602.html</link><dc:creator>leekiang</dc:creator><author>leekiang</author><pubDate>Sun, 30 Nov 2008 18:30:00 GMT</pubDate><guid>http://www.blogjava.net/leekiang/archive/2008/12/01/243602.html</guid><wfw:comment>http://www.blogjava.net/leekiang/comments/243602.html</wfw:comment><comments>http://www.blogjava.net/leekiang/archive/2008/12/01/243602.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/leekiang/comments/commentRss/243602.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/leekiang/services/trackbacks/243602.html</trackback:ping><description><![CDATA[1,<em>博客,cms类<br />  Mephisto 已升到2.2.2，</em><em><br />  typo 已升级至2.3.5<br /></em><em>  radiantcms 内容管理</em><br />  rubricks<br />  refinerycms<br />  locomative<br /><em>  simplelog:http://simplelog.net<br />  1stlog是一个针对中国用户开发的基于RubyOnRails的Blog系统<br />  http://www.h3rald.com/articles/rails-os-killer-apps<br />2，项目管理<br /></em>   Redmine 2.3.5<br />   retrospectiva  http://retrospectiva.org/  2.3.5<br />   Teambox<br />   Clocking IT 功能更为强大<br />3，论坛<br />  beast，rforum<br />  beast改造版:http://code.google.com/p/savage-beast-2/<br />              http://github.com/courtenay/altered_beast<br />  rboard:https://github.com/radar/rboard<br />4,SNS<br />https://github.com/insoshi/insoshi<br />https://github.com/stevenbristol/lovd-by-less，demo见http://try.lovdbyless.com/   <br />https://github.com/bborn/communityengine  见http://communityengine.org/<br />https://github.com/timothyf/EngineY<br />书<br />《Practical Rails Social Networking Sites》<br />《RailsSpace: Building a Social Networking Website with Ruby on Rails》<br /><br /><em>5，进销存<br />http://hamster.rubyforge.org/index.htm<br />Spree http://spreehq.org/  已升级至2.3.5<br />gal  http://gal.railsplayground.com/<br />     http://sourceforge.net/projects/gal<br />     https://gal.svn.sourceforge.net/svnroot/gal/trunk/<br />http://www.javaeye.com/news/5718-23-best-open-source-ruby-on-rails-application<br />6,</em><em>substruct</em><br /><em>http://code.google.com/p/</em><em>substruct</em><em>/<br /><br />tracks 个人时间管理? http://www.getontracks.org 2.2.2<br /><br /><br />6 CRM,erp<br />fat_free_crm http://www.fatfreecrm.com/  目前基于2.3.4,似乎没有单元测试<br /></em><em>extrails</em><br /><em>http://sourceforge.net/projects/extrails/<br />http://code.google.com/p/pa-manager/<br />官网为http://www.ev-manager.com<br /><br />文档管理<br />http://github.com/bruparel/file_manager<br /><br />邮件<br />mailr<br /><br />社会化网络<br />Community Engine  http://communityengine.org/<br />onebody   insoshi<br />openmind<br />http://www.blog.railshouse.com/2009/04/17/Top-Open-Source-Ruby-On-Rails-Projects<br /><br />7，</em>Rools is a pure Ruby rules-engine.<br />8，openWFEru is an open source Ruby workflow and <span class="caps">BPM</span> engine。又名<em>Ruote</em><br />9，Spreadsheet can read, write and modify Spreadsheet Documents<br /><em>10，</em><em>sequel</em><br /><em>http://www.infoq.com/cn/news/2008/12/sequel-ruby-db-toolkit<br />11，Rails  Metal是一个围绕一般Rack中间件的封装wrapper，能够放在Rails请求的前面并使用Rails的session。Metal的出现给让Rails应用的运行速度极大加快，并且能够每秒钟同时处理成千上万的应用<br /><br />12,rubycas-server  单点登录<br />   http://chinaonrails.com/topic/view/1610.html<br />  http://code.google.com/p/rorjossoagent/   </em>destinyd.war@gmail.com<br /><em><br />13,</em><a href="http://www.javaeye.com/topic/407369">说到工作流引擎</a>，ruby的state machine非常不错，在功能/开发效率/可扩展性等方面，没有任何一个开源的java工作流引擎可以和它媲美：
<br /><a href="http://github.com/pluginaweek/state_machine/tree/master" target="_blank">http://github.com/pluginaweek/state_machine/tree/master</a><br />http://www.javaeye.com/topic/362207<br /><br />http://www.blogjava.net/cap/archive/2005/07/17/7895.html<br />Graphviz的主页在<a href="http://www.graphviz.org/">http://www.graphviz.org/</a> ， 他是AT&amp;T Labs-Research开发的图形绘制工具,  他可以很方便的用来绘制结构化的图形网络，支持多种格式输出， 生成图片的质量和速度都不错<br /><br />acts_state_machine<br /><br />14,Bort<br /><span id="repository_description" rel="/fudgestudios/bort/edit/update" class="">A
base rails app featuring: RESTful Authentication, Will Paginate, Rspec
&amp;amp; Rspec-rails, Exception Notifier, Asset Packager, Cap Recipe
(multi-stage).</span><br />15 sinatra 微型web框架<br />16 pony 发邮件<br />17 rest-client代替ActiveResource<br />18 报表 ruport   rails21-book   <span id="h8m.5" style="font-family: Arial;" class="Apple-style-span"><span id="hl9l" style="font-family: Lucida; line-height: 16px;" class="Apple-style-span">Prawn   </span></span>ActvieFPDF<br /><font color="red">   <a href="http://www.cnblogs.com/hardrock/archive/2006/07/24/458184.html">HowtoGeneratePDFs</a></font><span id="h8m.5" style="font-family: Arial;" class="Apple-style-span"><span id="hl9l" style="font-family: Lucida; line-height: 16px;" class="Apple-style-span"><br />   http://wiki.rubyonrails.org/rails/pages/HowtoIntegrateJasperReports<br />19 Radiant：一个顶尖的基于Rails的CMS<br />20 </span></span>Mongrel<br />   http://chinaonrails.com/topic/view/206.html<br />   Mongrel 是一个ruby的webserver和类库. Mongrel的特色就是快，它比ruby自带的web
server还有其他的webserver都要快。把程序部署到这个上面是会给你带来速度上的惊喜的。
另外你也可以在ruby程序中直接使用mongrel，开发属于自己专用的web
server。mongrel的安装超级简单，别忘了他是用rubygems打包的，一个命令完全搞定。 gem install mongrel <br />
在我们介绍的五个武器总mongrel是唯一的一个类库。他是开放源代码的。他是一个很好的教我们如何把自己的产品打包，市场化。当然他最吸引的就是他的作者从中教给我们如何写一个类库。 <br /><br />21  InstantRails，一个All In One的套件，可以帮助你快速搭建Ruby On Rails开发环境<br /><br />22  Adhearsion is a new way to write voice-enabled applications. It's not just an API or library — it's a <strong>fully-featured framework</strong>,
the first of its kind, designed for maximal code reuse and
intuitiveness. The name "Adhearsion" is a combination of "adhesion" and
"hear" because Adhearsion shines best when integrating technologies
with voice.<br /><br />23 http://www.h3rald.com/articles/rails-os-killer-apps<br /><br />24 Shoes只是玩具，要用Ruby进行快速GUI开发，请用wxRuby+wxSugar<br />   http://quake.javaeye.com/blog/295829<br /><br />25 权限插件<br />http://github.com/binarylogic/authlogic/tree/master<br /><br />26 查询<br />http://www.javaeye.com/topic/585348<br />http://book.csdn.net/bookfiles/879/10087927419.shtml<br />http://www.javaeye.com/topic/241343 <a href="http://www.javaeye.com/topic/241343">Searchgasm</a>  searchlogic<br />Where插件  ostruct<br /><a href="http://agilewebdevelopment.com/plugins/simple_column_search">simple_column_search</a> http://doruby.kbmj.com/tn_on_rails/20100120/<br /><br />27,&lt;Rails高级编程&gt;<br /><br />28,<font size="-1"><font color="#c60a00">Camping</font>将自己定义为个代码量保持在4k字节大小以下Web开发框架这个项目已创建了22个月并由 whytheluckystf维护个完整web应用可以在单文件中定义同时遵循MVC框架(这使得web应用以后更易于移植 到<font color="#c60a00">Rails</font>的上)<font color="#c60a00">Camping</font>使用ActiveRecord作为ORM解决方案</font><br /><br />29,nokogiri 解析xml，用法类似于jquery<br /><br />30，mini_magick处理图片<br /><br />31,rcov<br />是使你的程序不经常崩溃的理由之一。 它分析你的代码， 高亮显示你的测试代码遗漏的部分。 它速度快， 不占资源， 并且能减轻头痛 ：)<br /><br />32,hpricot 是一个快速、容易上手的 HTML 分析器。 如果你发现自己需要解析 HTML 抑或 XML 的内容， hpricot 是最简捷的方法之一<br /><br />33,Capistrano 是 Rails 应用程序开发更加从容。 它还是一个用来和远程服务器交互的聪明的 framework 。 事实上我已经备份了用 Capistrano 写的代码， 作为 Rake/Net::SSH 或者 shell 代码之外的另一个选择。<br /><br />34,Turn 使你的 Test::Unit 输出更易读。 Turn 也行看起来不那么招人喜欢， 但它确实对阅读测试结果有很大帮助。 在维护 Helicoid 的时候我对测试严重依赖， 所以任何能使这项工作变得更简洁的东西我都乐于尝试。要安装 turn， 使用 gem install turn 命令。<br /><br />35, scruffy和Gruff可用来产生图形<br /><br />36, rubyscript2exe和Exerb可以编译为exe文件,后者生成的文件小，如果后者生成的运行不了可以试前者。<br /><br />37， JRails就是用jQuery替代Prototype/script.aculo.us在Rails做 helpers实现javascript的功能<br />     http://kyoleelqh.javaeye.com/blog/250514<br /><br />38,GNMS是一个网络管理系统，图形化工具，用于监测网络元素的状态<br />39，Plugin to kill N+1 queries<br />    http://github.com/flyerhzm/bullet   destinyd_ror@163.com<br /><br />http://www.opensourcerails.com<br /><em><br />http://www.infoq.com/cn/articles/changing-the-present-case-stud<br />http://www.roredu.com/rubyrails/category/ruby-on-rails-item/<br />http://www.javaeye.com/news/1993<br />http://hqmank.blog.bokee.net/bloggermodule/blog_viewblog.do?id=532562<br />http://www.opensourcerails.com/<br />http://www.practicalecommerce.com/blogs/post/432-Multiple-Attachments-in-Rails<br /></em><img src ="http://www.blogjava.net/leekiang/aggbug/243602.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/leekiang/" target="_blank">leekiang</a> 2008-12-01 02:30 <a href="http://www.blogjava.net/leekiang/archive/2008/12/01/243602.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>rails笔记</title><link>http://www.blogjava.net/leekiang/archive/2008/11/30/243501.html</link><dc:creator>leekiang</dc:creator><author>leekiang</author><pubDate>Sat, 29 Nov 2008 22:11:00 GMT</pubDate><guid>http://www.blogjava.net/leekiang/archive/2008/11/30/243501.html</guid><wfw:comment>http://www.blogjava.net/leekiang/comments/243501.html</wfw:comment><comments>http://www.blogjava.net/leekiang/archive/2008/11/30/243501.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/leekiang/comments/commentRss/243501.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/leekiang/services/trackbacks/243501.html</trackback:ping><description><![CDATA[1,db:migrate 时，Table already exist 的解决办法<br />  在已存在的表的create_table的参数中，加上 :force =&gt; true，如下：<br /><span>  create_table <span class="symbol">:products</span><span>, </span><span class="symbol">:force</span><span> =&gt; </span><span class="keyword">true</span><span> </span><span class="keyword">do</span><span> </span><span class="variable">|t</span><span>|  </span></span><br />2，验证<br />http://www.36sign.com/blog/working/ror-validation-problem.html<br />http://cvu.javaeye.com/blog/78066<br />3，分页<br /><span class="hilite1">will_paginate</span><br />下载:http://github.com/mislav/will_paginate/wikis/installation<br />http://hideto.javaeye.com/blog/108118<br />http://trace.javaeye.com/blog/156736<br />http://www.cnblogs.com/ayuan/archive/2008/03/12/1102001.html<br />http://www.ruby-lang.org.cn/forums/thread-985-1-1.html<br />http://hi.baidu.com/%D0%C7203/blog/item/30f334ecd0a319d72e2e212c.html<br /><img src ="http://www.blogjava.net/leekiang/aggbug/243501.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/leekiang/" target="_blank">leekiang</a> 2008-11-30 06:11 <a href="http://www.blogjava.net/leekiang/archive/2008/11/30/243501.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>用几句ruby代码刷人气(转)</title><link>http://www.blogjava.net/leekiang/archive/2008/04/05/190899.html</link><dc:creator>leekiang</dc:creator><author>leekiang</author><pubDate>Sat, 05 Apr 2008 05:04:00 GMT</pubDate><guid>http://www.blogjava.net/leekiang/archive/2008/04/05/190899.html</guid><wfw:comment>http://www.blogjava.net/leekiang/comments/190899.html</wfw:comment><comments>http://www.blogjava.net/leekiang/archive/2008/04/05/190899.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/leekiang/comments/commentRss/190899.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/leekiang/services/trackbacks/190899.html</trackback:ping><description><![CDATA[
		<div style="border: 1px solid rgb(204, 204, 204); padding: 4px 5px 4px 4px; background-color: rgb(238, 238, 238); font-size: 13px; width: 98%;">
				<!--<br><br>Code highlighting produced by Actipro CodeHighlighter (freeware)<br>http://www.CodeHighlighter.com/<br><br>-->
				<span style="color: rgb(0, 0, 0);">require </span>
				<span style="color: rgb(128, 0, 0);">'</span>
				<span style="color: rgb(128, 0, 0);">net/http</span>
				<span style="color: rgb(128, 0, 0);">'</span>
				<span style="color: rgb(0, 0, 0);">
						<br />
						<br />count </span>
				<span style="color: rgb(0, 0, 0);">=</span>
				<span style="color: rgb(0, 0, 0);"> </span>
				<span style="color: rgb(0, 0, 0);">1</span>
				<span style="color: rgb(0, 0, 0);">..</span>
				<span style="color: rgb(0, 0, 0);">100000</span>
				<span style="color: rgb(0, 0, 0);">  </span>
				<span style="color: rgb(0, 128, 0);">#</span>
				<span style="color: rgb(0, 128, 0);"> define an array</span>
				<span style="color: rgb(0, 128, 0);">
						<br />
				</span>
				<span style="color: rgb(0, 0, 0);">
						<br />count.each{      </span>
				<span style="color: rgb(0, 128, 0);">#</span>
				<span style="color: rgb(0, 128, 0);"> each </span>
				<span style="color: rgb(0, 128, 0);">
						<br />
				</span>
				<span style="color: rgb(0, 0, 0);">|</span>
				<span style="color: rgb(0, 0, 0);">index</span>
				<span style="color: rgb(0, 0, 0);">|</span>
				<span style="color: rgb(0, 0, 0);">             </span>
				<span style="color: rgb(0, 128, 0);">#</span>
				<span style="color: rgb(0, 128, 0);"> element is index  1 2 3 4 5 6</span>
				<span style="color: rgb(0, 128, 0);">
						<br />
				</span>
				<span style="color: rgb(0, 0, 0);">printf </span>
				<span style="color: rgb(128, 0, 0);">"</span>
				<span style="color: rgb(128, 0, 0);">#{index} </span>
				<span style="color: rgb(128, 0, 0);">"</span>
				<span style="color: rgb(0, 0, 0);"> </span>
				<span style="color: rgb(0, 128, 0);">#</span>
				<span style="color: rgb(0, 128, 0);">print index and space</span>
				<span style="color: rgb(0, 128, 0);">
						<br />
				</span>
				<span style="color: rgb(0, 0, 0);">h </span>
				<span style="color: rgb(0, 0, 0);">=</span>
				<span style="color: rgb(0, 0, 0);"> Net::HTTP.new(</span>
				<span style="color: rgb(128, 0, 0);">'</span>
				<span style="color: rgb(128, 0, 0);">space.cnblogs.com</span>
				<span style="color: rgb(128, 0, 0);">'</span>
				<span style="color: rgb(0, 0, 0);">,</span>
				<span style="color: rgb(0, 0, 0);">80</span>
				<span style="color: rgb(0, 0, 0);">) </span>
				<span style="color: rgb(0, 128, 0);">#</span>
				<span style="color: rgb(0, 128, 0);"> create a object</span>
				<span style="color: rgb(0, 128, 0);">
						<br />
				</span>
				<span style="color: rgb(0, 0, 0);">resp, data </span>
				<span style="color: rgb(0, 0, 0);">=</span>
				<span style="color: rgb(0, 0, 0);"> h.get(</span>
				<span style="color: rgb(128, 0, 0);">'</span>
				<span style="color: rgb(128, 0, 0);">/group/topic/1605/</span>
				<span style="color: rgb(128, 0, 0);">'</span>
				<span style="color: rgb(0, 0, 0);">,nil) </span>
				<span style="color: rgb(0, 128, 0);">#</span>
				<span style="color: rgb(0, 128, 0);"> get </span>
				<span style="color: rgb(0, 128, 0);">
						<br />
				</span>
				<span style="color: rgb(0, 0, 255);">if</span>
				<span style="color: rgb(0, 0, 0);"> resp.code </span>
				<span style="color: rgb(0, 0, 0);">!=</span>
				<span style="color: rgb(0, 0, 0);"> </span>
				<span style="color: rgb(128, 0, 0);">"</span>
				<span style="color: rgb(128, 0, 0);">200</span>
				<span style="color: rgb(128, 0, 0);">"</span>
				<span style="color: rgb(0, 0, 0);"> </span>
				<span style="color: rgb(0, 128, 0);">#</span>
				<span style="color: rgb(0, 128, 0);"> if http response status code not is 200 </span>
				<span style="color: rgb(0, 128, 0);">
						<br />
				</span>
				<span style="color: rgb(0, 0, 0);">  puts resp.code    </span>
				<span style="color: rgb(0, 128, 0);">#</span>
				<span style="color: rgb(0, 128, 0);">put status code</span>
				<span style="color: rgb(0, 128, 0);">
						<br />
				</span>
				<span style="color: rgb(0, 0, 0);">  puts resp.message </span>
				<span style="color: rgb(0, 128, 0);">#</span>
				<span style="color: rgb(0, 128, 0);">put status message</span>
				<span style="color: rgb(0, 128, 0);">
						<br />
				</span>
				<span style="color: rgb(0, 0, 0);">  <br />  resp.each{    </span>
				<span style="color: rgb(0, 128, 0);">#</span>
				<span style="color: rgb(0, 128, 0);">put headers</span>
				<span style="color: rgb(0, 128, 0);">
						<br />
				</span>
				<span style="color: rgb(0, 0, 0);">  </span>
				<span style="color: rgb(0, 0, 0);">|</span>
				<span style="color: rgb(0, 0, 0);">key, val</span>
				<span style="color: rgb(0, 0, 0);">|</span>
				<span style="color: rgb(0, 0, 0);">
						<br />  puts </span>
				<span style="color: rgb(128, 0, 0);">"</span>
				<span style="color: rgb(128, 0, 0);">#{key}\t\t\t#{val}</span>
				<span style="color: rgb(128, 0, 0);">"</span>
				<span style="color: rgb(0, 0, 0);">
						<br />  }<br />  <br />  p data    </span>
				<span style="color: rgb(0, 128, 0);">#</span>
				<span style="color: rgb(0, 128, 0);">put html</span>
				<span style="color: rgb(0, 128, 0);">
						<br />
				</span>
				<span style="color: rgb(0, 0, 0);">  </span>
				<span style="color: rgb(0, 0, 255);">break</span>
				<span style="color: rgb(0, 0, 0);"> </span>
				<span style="color: rgb(0, 128, 0);">#</span>
				<span style="color: rgb(0, 128, 0);"> break the eache</span>
				<span style="color: rgb(0, 128, 0);">
						<br />
				</span>
				<span style="color: rgb(0, 0, 0);">end<br /></span>
				<span style="color: rgb(0, 128, 0);">#</span>
				<span style="color: rgb(0, 128, 0);">sleep(1) #sleep  use second do inteval</span>
				<span style="color: rgb(0, 128, 0);">
						<br />
				</span>
				<span style="color: rgb(0, 0, 0);">}</span>
		</div>
		<br />来源:http://www.cnblogs.com/coderlee/archive/2008/03/25/1121652.html<img src ="http://www.blogjava.net/leekiang/aggbug/190899.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/leekiang/" target="_blank">leekiang</a> 2008-04-05 13:04 <a href="http://www.blogjava.net/leekiang/archive/2008/04/05/190899.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>