﻿<?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--随笔分类-rails</title><link>http://www.blogjava.net/leekiang/category/44217.html</link><description>MDA/MDD/TDD/DDD/DDDDDDD</description><language>zh-cn</language><lastBuildDate>Mon, 19 Dec 2011 02:40:47 GMT</lastBuildDate><pubDate>Mon, 19 Dec 2011 02:40:47 GMT</pubDate><ttl>60</ttl><item><title>在CentOS5.7上搭建rails环境</title><link>http://www.blogjava.net/leekiang/archive/2011/12/10/366029.html</link><dc:creator>leekiang</dc:creator><author>leekiang</author><pubDate>Sat, 10 Dec 2011 04:26:00 GMT</pubDate><guid>http://www.blogjava.net/leekiang/archive/2011/12/10/366029.html</guid><wfw:comment>http://www.blogjava.net/leekiang/comments/366029.html</wfw:comment><comments>http://www.blogjava.net/leekiang/archive/2011/12/10/366029.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/leekiang/comments/commentRss/366029.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/leekiang/services/trackbacks/366029.html</trackback:ping><description><![CDATA[		1,安装gcc<br />yum install gcc<br /><br />2,安装MySQL,并设置为开机自动启动。<br /># yum install mysql mysql-devel mysql-server<br /># chkconfig --levels 235 mysqld on<br /># /etc/init.d/mysqld start<br /><br />3,安装ruby<br /># wget ftp://ftp.ruby-lang.org/pub/ruby/1.8/ruby-1.8.7-p352.tar.gz<br /># tar zxf ruby-1.8.7-p352.tar.gz<br /># cd ruby-1.8.7-p352<br /><font id="zoom" class="f14"># ./configure <br /># make <br /># make install</font><br /># ruby -v<br />目前ruby1.8.7最新的是p352，见ftp://ftp.ruby-lang.org/pub/ruby/1.8/<br />默认会安装到/usr/local/lib/ruby/<br /><br />4,<span style="font-size: 12pt; font-family: &quot;微软雅黑&quot;,&quot;sans-serif&quot;;"><span lang="EN-US">安装rubygems</span></span><br /><span style="font-size: 12pt; font-family: &quot;微软雅黑&quot;,&quot;sans-serif&quot;;">在安装<span lang="EN-US">rails</span>
之前，要先安装<span lang="EN-US">rubygems</span></span><br />这个比较挑剔，在redmine安装指导（http://www.redmine.org/projects/redmine/wiki/RedmineInstall）中提到有要求，要在1.3.7 ~ 1.7.0之间，这里选择了1.6.2版。同样是下载源码安装。<br /># cd ~/rails_install<br /># wget http://rubyforge.org/frs/download.php/74445/rubygems-1.6.2.tgz<br /># tar zxvf rubygems-1.6.2.tgz<br /># cd rubygems-1.6.2<br /># ruby setup.rb<br />安装成功后，执行gem –v ，可看到版本信息。<br /><br />5,安装Rails及相关gems<br /><br /><div style="background-color: rgb(238, 238, 238); font-size: 13px; border: 1px solid rgb(204, 204, 204); padding: 4px 5px 4px 4px; 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);">wget http</span><span style="color: rgb(0, 0, 0);">://</span><span style="color: rgb(0, 0, 0);">rubygems</span><span style="color: rgb(0, 0, 0);">.</span><span style="color: rgb(0, 0, 0);">org</span><span style="color: rgb(0, 0, 0);">/</span><span style="color: rgb(0, 0, 0);">downloads</span><span style="color: rgb(0, 0, 0);">/</span><span style="color: rgb(0, 0, 0);">rake</span><span style="color: rgb(0, 0, 0);">-</span><span style="color: rgb(128, 0, 0);">0.8</span><span style="color: rgb(0, 0, 0);">.</span><span style="color: rgb(128, 0, 0);">7</span><span style="color: rgb(0, 0, 0);">.</span><span style="color: rgb(0, 0, 0);">gem<br />wget http</span><span style="color: rgb(0, 0, 0);">://</span><span style="color: rgb(0, 0, 0);">rubygems</span><span style="color: rgb(0, 0, 0);">.</span><span style="color: rgb(0, 0, 0);">org</span><span style="color: rgb(0, 0, 0);">/</span><span style="color: rgb(0, 0, 0);">downloads</span><span style="color: rgb(0, 0, 0);">/</span><span style="color: rgb(0, 0, 0);">rack</span><span style="color: rgb(0, 0, 0);">-</span><span style="color: rgb(128, 0, 0);">1.1</span><span style="color: rgb(0, 0, 0);">.</span><span style="color: rgb(128, 0, 0);">0</span><span style="color: rgb(0, 0, 0);">.</span><span style="color: rgb(0, 0, 0);">gem<br />wget http</span><span style="color: rgb(0, 0, 0);">://</span><span style="color: rgb(0, 0, 0);">rubygems</span><span style="color: rgb(0, 0, 0);">.</span><span style="color: rgb(0, 0, 0);">org</span><span style="color: rgb(0, 0, 0);">/</span><span style="color: rgb(0, 0, 0);">downloads</span><span style="color: rgb(0, 0, 0);">/</span><span style="color: rgb(0, 0, 0);">rails</span><span style="color: rgb(0, 0, 0);">-</span><span style="color: rgb(128, 0, 0);">2.3</span><span style="color: rgb(0, 0, 0);">.</span><span style="color: rgb(128, 0, 0);">14</span><span style="color: rgb(0, 0, 0);">.</span><span style="color: rgb(0, 0, 0);">gem<br />wget http</span><span style="color: rgb(0, 0, 0);">://</span><span style="color: rgb(0, 0, 0);">rubygems</span><span style="color: rgb(0, 0, 0);">.</span><span style="color: rgb(0, 0, 0);">org</span><span style="color: rgb(0, 0, 0);">/</span><span style="color: rgb(0, 0, 0);">downloads</span><span style="color: rgb(0, 0, 0);">/</span><span style="color: rgb(0, 0, 0);">activesupport</span><span style="color: rgb(0, 0, 0);">-</span><span style="color: rgb(128, 0, 0);">2.3</span><span style="color: rgb(0, 0, 0);">.</span><span style="color: rgb(128, 0, 0);">14</span><span style="color: rgb(0, 0, 0);">.</span><span style="color: rgb(0, 0, 0);">gem<br />wget http</span><span style="color: rgb(0, 0, 0);">://</span><span style="color: rgb(0, 0, 0);">rubygems</span><span style="color: rgb(0, 0, 0);">.</span><span style="color: rgb(0, 0, 0);">org</span><span style="color: rgb(0, 0, 0);">/</span><span style="color: rgb(0, 0, 0);">downloads</span><span style="color: rgb(0, 0, 0);">/</span><span style="color: rgb(0, 0, 0);">activerecord</span><span style="color: rgb(0, 0, 0);">-</span><span style="color: rgb(128, 0, 0);">2.3</span><span style="color: rgb(0, 0, 0);">.</span><span style="color: rgb(128, 0, 0);">14</span><span style="color: rgb(0, 0, 0);">.</span><span style="color: rgb(0, 0, 0);">gem<br />wget http</span><span style="color: rgb(0, 0, 0);">://</span><span style="color: rgb(0, 0, 0);">rubygems</span><span style="color: rgb(0, 0, 0);">.</span><span style="color: rgb(0, 0, 0);">org</span><span style="color: rgb(0, 0, 0);">/</span><span style="color: rgb(0, 0, 0);">downloads</span><span style="color: rgb(0, 0, 0);">/</span><span style="color: rgb(0, 0, 0);">actionpack</span><span style="color: rgb(0, 0, 0);">-</span><span style="color: rgb(128, 0, 0);">2.3</span><span style="color: rgb(0, 0, 0);">.</span><span style="color: rgb(128, 0, 0);">14</span><span style="color: rgb(0, 0, 0);">.</span><span style="color: rgb(0, 0, 0);">gem<br />wget http</span><span style="color: rgb(0, 0, 0);">://</span><span style="color: rgb(0, 0, 0);">rubygems</span><span style="color: rgb(0, 0, 0);">.</span><span style="color: rgb(0, 0, 0);">org</span><span style="color: rgb(0, 0, 0);">/</span><span style="color: rgb(0, 0, 0);">downloads</span><span style="color: rgb(0, 0, 0);">/</span><span style="color: rgb(0, 0, 0);">actionmailer</span><span style="color: rgb(0, 0, 0);">-</span><span style="color: rgb(128, 0, 0);">2.3</span><span style="color: rgb(0, 0, 0);">.</span><span style="color: rgb(128, 0, 0);">14</span><span style="color: rgb(0, 0, 0);">.</span><span style="color: rgb(0, 0, 0);">gem<br />wget http</span><span style="color: rgb(0, 0, 0);">://</span><span style="color: rgb(0, 0, 0);">rubygems</span><span style="color: rgb(0, 0, 0);">.</span><span style="color: rgb(0, 0, 0);">org</span><span style="color: rgb(0, 0, 0);">/</span><span style="color: rgb(0, 0, 0);">downloads</span><span style="color: rgb(0, 0, 0);">/</span><span style="color: rgb(0, 0, 0);">activeresource</span><span style="color: rgb(0, 0, 0);">-</span><span style="color: rgb(128, 0, 0);">2.3</span><span style="color: rgb(0, 0, 0);">.</span><span style="color: rgb(128, 0, 0);">14</span><span style="color: rgb(0, 0, 0);">.</span><span style="color: rgb(0, 0, 0);">gem<br /><br />wget http</span><span style="color: rgb(0, 0, 0);">://</span><span style="color: rgb(0, 0, 0);">rubygems</span><span style="color: rgb(0, 0, 0);">.</span><span style="color: rgb(0, 0, 0);">org</span><span style="color: rgb(0, 0, 0);">/</span><span style="color: rgb(0, 0, 0);">downloads</span><span style="color: rgb(0, 0, 0);">/</span><span style="color: rgb(0, 0, 0);">i18n</span><span style="color: rgb(0, 0, 0);">-</span><span style="color: rgb(128, 0, 0);">0.4</span><span style="color: rgb(0, 0, 0);">.</span><span style="color: rgb(128, 0, 0);">2</span><span style="color: rgb(0, 0, 0);">.</span><span style="color: rgb(0, 0, 0);">gem<br />wget http</span><span style="color: rgb(0, 0, 0);">://</span><span style="color: rgb(0, 0, 0);">rubygems</span><span style="color: rgb(0, 0, 0);">.</span><span style="color: rgb(0, 0, 0);">org</span><span style="color: rgb(0, 0, 0);">/</span><span style="color: rgb(0, 0, 0);">downloads</span><span style="color: rgb(0, 0, 0);">/</span><span style="color: rgb(0, 0, 0);">mysql</span><span style="color: rgb(0, 0, 0);">-</span><span style="color: rgb(128, 0, 0);">2.8</span><span style="color: rgb(0, 0, 0);">.</span><span style="color: rgb(128, 0, 0);">1</span><span style="color: rgb(0, 0, 0);">.</span><span style="color: rgb(0, 0, 0);">gem<br />wget http</span><span style="color: rgb(0, 0, 0);">://</span><span style="color: rgb(0, 0, 0);">rubygems</span><span style="color: rgb(0, 0, 0);">.</span><span style="color: rgb(0, 0, 0);">org</span><span style="color: rgb(0, 0, 0);">/</span><span style="color: rgb(0, 0, 0);">downloads</span><span style="color: rgb(0, 0, 0);">/</span><span style="color: rgb(0, 0, 0);">cgi_multipart_eof_fix</span><span style="color: rgb(0, 0, 0);">-</span><span style="color: rgb(128, 0, 0);">2.5</span><span style="color: rgb(0, 0, 0);">.</span><span style="color: rgb(128, 0, 0);">0</span><span style="color: rgb(0, 0, 0);">.</span><span style="color: rgb(0, 0, 0);">gem<br />wget http</span><span style="color: rgb(0, 0, 0);">://</span><span style="color: rgb(0, 0, 0);">rubygems</span><span style="color: rgb(0, 0, 0);">.</span><span style="color: rgb(0, 0, 0);">org</span><span style="color: rgb(0, 0, 0);">/</span><span style="color: rgb(0, 0, 0);">downloads</span><span style="color: rgb(0, 0, 0);">/</span><span style="color: rgb(0, 0, 0);">coderay</span><span style="color: rgb(0, 0, 0);">-</span><span style="color: rgb(128, 0, 0);">1.0</span><span style="color: rgb(0, 0, 0);">.</span><span style="color: rgb(128, 0, 0);">0</span><span style="color: rgb(0, 0, 0);">.</span><span style="color: rgb(0, 0, 0);">gem<br /><br />gem  install </span><span style="color: rgb(0, 0, 0);">--</span><span style="color: rgb(0, 0, 255);">local</span><span style="color: rgb(0, 0, 0);"> rake</span><span style="color: rgb(0, 0, 0);">-</span><span style="color: rgb(128, 0, 0);">0.8</span><span style="color: rgb(0, 0, 0);">.</span><span style="color: rgb(128, 0, 0);">7</span><span style="color: rgb(0, 0, 0);">.</span><span style="color: rgb(0, 0, 0);">gem<br />gem  install </span><span style="color: rgb(0, 0, 0);">--</span><span style="color: rgb(0, 0, 255);">local</span><span style="color: rgb(0, 0, 0);"> rack</span><span style="color: rgb(0, 0, 0);">-</span><span style="color: rgb(128, 0, 0);">1.1</span><span style="color: rgb(0, 0, 0);">.</span><span style="color: rgb(128, 0, 0);">0</span><span style="color: rgb(0, 0, 0);">.</span><span style="color: rgb(0, 0, 0);">gem <br />gem  install </span><span style="color: rgb(0, 0, 0);">--</span><span style="color: rgb(0, 0, 255);">local</span><span style="color: rgb(0, 0, 0);"> rails</span><span style="color: rgb(0, 0, 0);">-</span><span style="color: rgb(128, 0, 0);">2.3</span><span style="color: rgb(0, 0, 0);">.</span><span style="color: rgb(128, 0, 0);">14</span><span style="color: rgb(0, 0, 0);">.</span><span style="color: rgb(0, 0, 0);">gem<br />gem  install </span><span style="color: rgb(0, 0, 0);">--</span><span style="color: rgb(0, 0, 255);">local</span><span style="color: rgb(0, 0, 0);"> mysql</span><span style="color: rgb(0, 0, 0);">-</span><span style="color: rgb(128, 0, 0);">2.8</span><span style="color: rgb(0, 0, 0);">.</span><span style="color: rgb(128, 0, 0);">1</span><span style="color: rgb(0, 0, 0);">.</span><span style="color: rgb(0, 0, 0);">gem<br />gem  install </span><span style="color: rgb(0, 0, 0);">--</span><span style="color: rgb(0, 0, 255);">local</span><span style="color: rgb(0, 0, 0);"> i18n</span><span style="color: rgb(0, 0, 0);">-</span><span style="color: rgb(128, 0, 0);">0.4</span><span style="color: rgb(0, 0, 0);">.</span><span style="color: rgb(128, 0, 0);">2</span><span style="color: rgb(0, 0, 0);">.</span><span style="color: rgb(0, 0, 0);">gem<br />gem  install </span><span style="color: rgb(0, 0, 0);">--</span><span style="color: rgb(0, 0, 255);">local</span><span style="color: rgb(0, 0, 0);"> cgi_multipart_eof_fix</span><span style="color: rgb(0, 0, 0);">-</span><span style="color: rgb(128, 0, 0);">2.5</span><span style="color: rgb(0, 0, 0);">.</span><span style="color: rgb(128, 0, 0);">0</span><span style="color: rgb(0, 0, 0);">.</span><span style="color: rgb(0, 0, 0);">gem<br />gem  install </span><span style="color: rgb(0, 0, 0);">--</span><span style="color: rgb(0, 0, 255);">local</span><span style="color: rgb(0, 0, 0);"> coderay</span><span style="color: rgb(0, 0, 0);">-</span><span style="color: rgb(128, 0, 0);">1.0</span><span style="color: rgb(0, 0, 0);">.</span><span style="color: rgb(128, 0, 0);">0</span><span style="color: rgb(0, 0, 0);">.</span><span style="color: rgb(0, 0, 0);">gem</span></div><br />6,安装Redmine1.2.3<br />使用svn下载Redmine 1.2源码到/www目录中<br />svn co svn://rubyforge.org/var/svn/redmine/branches/1.2-stable redmine-1.2<br /><br />创建Redmine数据库和redmine用户<br /><div style="background-color: rgb(238, 238, 238); font-size: 13px; border: 1px solid rgb(204, 204, 204); padding: 4px 5px 4px 4px; 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);">CREATE</span><span style="color: rgb(0, 0, 0);"> </span><span style="color: rgb(0, 0, 255);">DATABASE</span><span style="color: rgb(0, 0, 0);"> redmine </span><span style="color: rgb(0, 0, 0); font-weight: bold;">CHARACTER</span><span style="color: rgb(0, 0, 0);"> </span><span style="color: rgb(0, 0, 255);">SET</span><span style="color: rgb(0, 0, 0);"> utf8 COLLATE utf8_general_ci;<br /></span><span style="color: rgb(0, 0, 255);">CREATE</span><span style="color: rgb(0, 0, 0);"> </span><span style="color: rgb(255, 0, 255);">USER</span><span style="color: rgb(0, 0, 0);"> </span><span style="color: rgb(255, 0, 0);">'</span><span style="color: rgb(255, 0, 0);">redmine</span><span style="color: rgb(255, 0, 0);">'</span><span style="color: rgb(0, 0, 0);">@</span><span style="color: rgb(255, 0, 0);">'</span><span style="color: rgb(255, 0, 0);">localhost</span><span style="color: rgb(255, 0, 0);">'</span><span style="color: rgb(0, 0, 0);"> IDENTIFIED </span><span style="color: rgb(0, 0, 255);">BY</span><span style="color: rgb(0, 0, 0);"> </span><span style="color: rgb(255, 0, 0);">'</span><span style="color: rgb(255, 0, 0);">redmine</span><span style="color: rgb(255, 0, 0);">'</span><span style="color: rgb(0, 0, 0);">;<br /></span><span style="color: rgb(0, 0, 255);">GRANT</span><span style="color: rgb(0, 0, 0);"> </span><span style="color: rgb(128, 128, 128);">ALL</span><span style="color: rgb(0, 0, 0);"> </span><span style="color: rgb(0, 0, 255);">ON</span><span style="color: rgb(0, 0, 0);"> redmine.</span><span style="color: rgb(128, 128, 128);">*</span><span style="color: rgb(0, 0, 0);"> </span><span style="color: rgb(0, 0, 255);">TO</span><span style="color: rgb(0, 0, 0);"> </span><span style="color: rgb(255, 0, 0);">'</span><span style="color: rgb(255, 0, 0);">redmine</span><span style="color: rgb(255, 0, 0);">'</span><span style="color: rgb(0, 0, 0);">@</span><span style="color: rgb(255, 0, 0);">'</span><span style="color: rgb(255, 0, 0);">localhost</span><span style="color: rgb(255, 0, 0);">'</span><span style="color: rgb(0, 0, 0);">;</span></div><br />到database.yml文件，修改production节点的帐号和密码为redmine，注意冒号后要有空格。<br /><br />到/www/redmine1.2目录下<br /><div style="background-color: rgb(238, 238, 238); font-size: 13px; border: 1px solid rgb(204, 204, 204); padding: 4px 5px 4px 4px; 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);">rake config</span><span style="color: rgb(0, 0, 0);">/</span><span style="color: rgb(0, 0, 0);">initializers</span><span style="color: rgb(0, 0, 0);">/</span><span style="color: rgb(0, 0, 0);">session_store</span><span style="color: rgb(0, 0, 0);">.</span><span style="color: rgb(0, 0, 0);">rb<br />RAILS_ENV</span><span style="color: rgb(0, 0, 0);">=</span><span style="color: rgb(0, 0, 0);">production rake db</span><span style="color: rgb(0, 0, 0);">:</span><span style="color: rgb(0, 0, 0);">migrate<br />RAILS_ENV</span><span style="color: rgb(0, 0, 0);">=</span><span style="color: rgb(0, 0, 0);">production rake redmine</span><span style="color: rgb(0, 0, 0);">:</span><span style="color: rgb(0, 0, 0);">load_default_data<br />ruby script</span><span style="color: rgb(0, 0, 0);">/</span><span style="color: rgb(0, 0, 0);">server webrick </span><span style="color: rgb(0, 0, 0);">-</span><span style="color: rgb(0, 0, 0);">p </span><span style="color: rgb(128, 0, 0);">8000</span><span style="color: rgb(0, 0, 0);"> </span><span style="color: rgb(0, 0, 0);">-</span><span style="color: rgb(0, 0, 0);">e production</span></div><br /><br />如果报错：rake aborted! no such file to load -- openssl<br />先yum install  openssl-devel<br />然后到下载的ruby源码的ext/openssl目录<br /><div style="background-color: rgb(238, 238, 238); font-size: 13px; border: 1px solid rgb(204, 204, 204); padding: 4px 5px 4px 4px; 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);">ruby extconf.rb  (生成Makefile)<br />make<br />make install</span></div><br /><br /><br />删除已安装的ruby<br /><a target="_blank" href="http://stackoverflow.com/questions/2591501/how-to-uninstall-ruby-from-usr-local">How to uninstall Ruby from /usr/local?</a><br /><a target="_blank" href="http://www.d-man.org/news/2009/01/06/91/">How to Remove an Old version of Ruby</a><br /><br /><br /><br />参考：<br /><a href="http://www.cnblogs.com/wuchang/archive/2011/10/04/2199018.html">CentOS 6.0 安装配置rails 2.3.11 + redmine 1.2.1 笔记</a><br /><a target="_blank" href="http://hi.baidu.com/xierqd/blog/item/445d6beeaf634decb2fb9594.html">Redmine在Linux（CentOS）下的安装及配置</a><br /><br /><br /><br /><br /><font id="zoom" class="f14">"./configure &amp;&amp; make &amp;&amp; make install"是典型的使用GNU的AUTOCONF和AUTOMAKE产生的程序的安装步骤。<br />./configure是用来检测你的安装平台的目标特征的。比如它会检测你是不是有CC或GCC，并不是需要CC(</font><font id="zoom" class="f14">cc是gcc的连接，gcc是编译器</font><font id="zoom" class="f14">)或GCC，它是个shell脚本<br />make是用来编译的，它从Makefile中读取指令，然后编译。<br />make install是用来安装的，它也从Makefile中读取指令，安装到指定的位置。<br />AUTOMAKE和AUTOCONF是非常有用的用来发布C程序的东西</font><br /><img src ="http://www.blogjava.net/leekiang/aggbug/366029.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> 2011-12-10 12:26 <a href="http://www.blogjava.net/leekiang/archive/2011/12/10/366029.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>rails处理遗留数据库，分表等</title><link>http://www.blogjava.net/leekiang/archive/2011/07/10/354013.html</link><dc:creator>leekiang</dc:creator><author>leekiang</author><pubDate>Sat, 09 Jul 2011 16:40:00 GMT</pubDate><guid>http://www.blogjava.net/leekiang/archive/2011/07/10/354013.html</guid><wfw:comment>http://www.blogjava.net/leekiang/comments/354013.html</wfw:comment><comments>http://www.blogjava.net/leekiang/archive/2011/07/10/354013.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/leekiang/comments/commentRss/354013.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/leekiang/services/trackbacks/354013.html</trackback:ping><description><![CDATA[分库可以在model中加入<br />  establish_connection :your_connection<br />  self.abstract_class = true<br />实现.<br />分表应该也可以用类似的方法:<br />set_table_name<br /><br /><a target="_blank" href="http://qa.taobao.com/?p=4419">Rails遗留数据库访问之二分库分表</a><br /><a target="_blank" href="http://qa.taobao.com/?p=4405">Rails遗留数据库访问之一动态ORM</a><br /><a target="_blank" href="http://jlaky.iteye.com/blog/426542">Rails中实现分表（1）垂直分表</a><br /><a target="_blank" href="http://www.iteye.com/topic/155993">项目中遇到的问题（二）（动态创建MODEL）</a><br /><a href="http://www.iteye.com/topic/30243">Rails是否可以这样解决这个辣手的问题?</a><br /><a href="http://www.iteye.com/topic/76305">Rails中如何支持数据库分表啊</a><br /><br />http://stackoverflow.com/questions/44145/database-sharding-and-rails<br />http://stackoverflow.com/questions/5981724/multiple-database-tables-within-one-ar-model-in-rails-3<br />https://github.com/aglasgall/rails-sharding<br />http://www.engineyard.com/blog/2009/a-quick-primer-on-sharding-for-ruby-on-rails/<br />http://blog.sphereinc.com/2010/04/its-boring-to-scale-with-ruby-on-rails/<br />http://kovyrin.net/2010/04/16/dbcharmer-rails-can-scale/<br />https://www.ruby-toolbox.com/categories/Active_Record_Sharding<br />https://www.ruby-toolbox.com/projects/octopus<br />https://www.ruby-toolbox.com/projects/data_fabric<br /><br />how RoR scales
<br />I've said it before, but it bears repeating: <em>There's nothing interesting about how Ruby on Rails scales</em>.
 We've gone the easy route and merely followed what makes Yahoo!, 
LiveJournal, and other high-profile LAMP stacks scale high and mighty.<p><span style="font-family: Georgia; font-size: 16px;"><p style="margin-top: 0px; margin-bottom: 20px; font-size: 14px; line-height: 18px; text-align: justify;">Take
 state out of the application servers and push it to 
database/memcached/shared network drive (that's the whole Shared Nothing
 thang). Use load balancers between your tiers, so you have load 
balancers -&gt; web servers -&gt; load balancers -&gt; app servers -&gt;
 load balancers -&gt; database/memcached/shared network drive servers. 
(Past the entry point, load balancers can just be software, like 
haproxy).</p><p style="margin-top: 0px; margin-bottom: 20px; font-size: 14px; line-height: 18px; text-align: justify;">In a setup like that, you can add almost any number of web and app servers without changing a thing.</p><p style="margin-top: 0px; margin-bottom: 20px; font-size: 14px; line-height: 18px; text-align: justify;">Scaling
 the database is the "hard part", but still a solved problem. Once you 
get beyond what can be easily managed by a decent master-slave setup 
(and that'll probably take millions and millions of pageviews per day), 
you start doing partitioning.</p><p style="margin-top: 0px; margin-bottom: 20px; font-size: 14px; line-height: 18px; text-align: justify;">Users
 1-100K on cluster A, 100K-200K on cluster B, and so on. But again, this
 is nothing new. LiveJournal scales like that. I hear eBay too. And 
probably everyone else that has to deal with huge numbers.</p><p style="margin-top: 0px; margin-bottom: 20px; font-size: 14px; line-height: 18px; text-align: justify;">So
 the scaling part is solved. What's left is judging whether the 
economics of it are sensible to you. And that's really a performance 
issue, not a scalability one.</p><p style="margin-top: 0px; margin-bottom: 20px; font-size: 14px; line-height: 18px; text-align: justify;">If
 your app server costs $500 per month (like our dual xeons does) and can
 drive 30 requests/second on Rails and 60 requests/second on 
Java/PHP/.NET/<em>whatever</em> (these are totally arbitrary numbers 
pulled out of my...), then you're faced with the cost of $500 for 2.6 
million requests/day on the Rails setup and $250 for the same on the 
other one.</p><p style="margin-top: 0px; margin-bottom: 20px; font-size: 14px; line-height: 18px; text-align: justify;">Now.
 How much is productivity worth to you? Let's just take a $60K/year 
programmer. That's $5K/month. If you need to handle 5 million 
requests/day, your programmer needs to be 10% more productive on Rails 
to make it even. If he's 15% more productive, you're up $250. And this 
is not even considering the joy and happiness programmers derive from 
working with more productive tools (nor that people have claimed to be 
many times more productive).</p><p style="margin-top: 0px; margin-bottom: 20px; font-size: 14px; line-height: 18px; text-align: justify;">Of course, the silly math above hinges on the assumption that the <em>whatever</em>stack
 is twice as fast as Rails. That's a very big if. And totally dependent 
on the application, the people, and so on. Some have found <a style="color: rgb(101, 101, 80);" href="http://weblog.rubyonrails.com/archives/2005/04/04/justingehtland-is-back-with-numbers-to-back-it-up/">Rails to be as fast or faster</a> than comparable "best-of-breed J2EE stacks".</p><p style="margin-top: 0px; margin-bottom: 20px; font-size: 14px; line-height: 18px; text-align: justify;">The
 point is that the cost per request is plummeting, but the cost of 
programming is not. Thus, we have to find ways to trade efficiency in 
the runtime for efficiency in the "thought time" in order to make the 
development of applications cheaper. I believed we've long since entered
 an age where simplicity of development and maintenance is where the 
real value lies.</p><p style="margin-top: 0px; margin-bottom: 20px; font-size: 14px; line-height: 18px; text-align: justify;">其实正如zhangc之前说，理论的问题都清楚，关键还是实践！</p></span></p><br /><img src ="http://www.blogjava.net/leekiang/aggbug/354013.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> 2011-07-10 00:40 <a href="http://www.blogjava.net/leekiang/archive/2011/07/10/354013.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>ubuntu10.10下rails2.3.X和redmine1.0.X安装记录</title><link>http://www.blogjava.net/leekiang/archive/2011/01/06/342392.html</link><dc:creator>leekiang</dc:creator><author>leekiang</author><pubDate>Wed, 05 Jan 2011 17:40:00 GMT</pubDate><guid>http://www.blogjava.net/leekiang/archive/2011/01/06/342392.html</guid><wfw:comment>http://www.blogjava.net/leekiang/comments/342392.html</wfw:comment><comments>http://www.blogjava.net/leekiang/archive/2011/01/06/342392.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/leekiang/comments/commentRss/342392.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/leekiang/services/trackbacks/342392.html</trackback:ping><description><![CDATA[1，sudo apt-get install ruby-full，<br />     安装后执行ruby -v，显示“ruby 1.8.7 (2010-06-23 patchlevel 299) [i686-linux]“<br />     查了一下（用的命令是locate ruby），安装到了/usr/lib/ruby/1.8目录，但哪些位置还有ruby的文件未知。<br />     注意：不需要再手动把ruby路径加到PATH，因为已经加好了，见/usr/bin<br />2，sudo apt-get install rubygems<br />     执行gem -v，显示“1.3.7”<br />     注意：据说ruby1.9自带gem。<br />3，gem install rails -v=2.3.5<br />     发现会自动安装rake-0.8.7，原来rake是rails自带的东西。<br />     会自动安装到/var/lib/gems/1.8/gems目录下。<br />     但在命令行下，rails -v仍然报错："程序 rails 尚未安装"。
	
	<div>
		     改正：在用户的 .bashrc文件中追加export PATH=/var/lib/gems/1.8/bin:$PATH<br />     感谢<a href="http://oyaji.is-programmer.com/posts/23323.html">这篇文章</a>，也可看一下<a href="http://www.grick.net/archives/785">这篇</a><br />     后注：应该加到全局环境变量里，因为有的命令，如rake，需要root用户执行<br /></div><br /><br />4，下载redmine1.0.5，解压，用netbeans6.9.1导入项目时提示缺少i18n，<br />     按照提示，在root下执行gem install -v=0.4.2 i18n<br />5，<br />把database.yml.example改为database.yml<br />在每种环境下都加属性socket: /var/run/mysqld/mysqld.sock，为什么<br /><br />6，解决mysql乱码问题<br /><span><span>sudo  gedit  /etc/mysql/my.cnf</span></span><br />在[client]区域和[mysqld]区域都添加一行：<br />default-character-set = utf8<br />然后重启：<span><span>sudo /etc/init.d/mysql restart <br />可通过show variables like 'character%'命令查看修改前后的变化。<br />参考<br />http://jiessiedyh.javaeye.com/blog/468338<br /></span></span><a href="http://forum.ubuntu.org.cn/viewtopic.php?t=204749">有人</a>提到[mysqld]的skip-character-set-client-handshake属性<br /><br />7，mysql驱动<br />执行gem install mysql，报<br />Building native extensions.  This could take a while...<br />ERROR:  Error installing mysql:<br />ERROR: Failed to build gem native extension.<br />解决：因为找不到mysql_config造成的，只要安装“libmysqlclient15-dev”就可以了sudo apt-get install libmysqlclient15-dev<br /><br />8，"A key is required to write a cookie containing the session data. Use config.action_controller.session = {:key =&gt; "_myapp_session", :secret =&gt; "some secret phrase"} in config/environment.rb"<br />please do as the suggestion, add following config to enviroment.rb file:<br />config.action_controller.session = { :key =&gt; "_redmine_session", :secret =&gt; "aa3be4f950045ce76451b8197bf06b6d" }<br /><br />在typo上执行“刷新任务”时，报错：Rake aborted! Uninitialized constant bundler ，搜索后执行gem install bundler，再执行“刷新任务”，提示执行“bundle install”，但在控制台里报没有这个命令。bundler是rails3出来的新东西？<br /><br /><br />参考:<br /><a href="http://blog.csdn.net/cnvisual/archive/2010/11/10/5999310.aspx">在 Ubuntu 10.10下搭建ror（ruby on rails）开发环境</a><br /><a href="http://hot88zh.javaeye.com/blog/368597">在debian(ubuntu)上建立Ruby on Rails的开发环境step by step</a><br /><a href="http://blog.sina.com.cn/s/blog_6e7e30330100odq8.html">Ubuntu下搭建Redmine</a><br /><a href="http://www.ylmf.net/ubuntu/tips/2010123019340.html">Ubuntu 10.04上搭建Ruby on Rails环境</a><br /><a href="http://forum.ubuntu.org.cn/viewtopic.php?f=63&amp;t=72569">Ubuntu下一步安装ruby on rails环境的脚本</a><br /><a href="http://blog.chinaunix.net/u/18377/showart.php?id=1988046">Ubuntu8.10下使用mysql数据库方式安装Redmine</a><br /><a href="http://code.google.com/p/cloudcomputer/wiki/Redmine">Redmine在Ubuntu10.04上的安装配置</a><br /><a href="http://www.linuxidc.com/Linux/2010-07/27075.htm">Ubuntu 10.04默认安装Redmine注意事项</a><br /><img src ="http://www.blogjava.net/leekiang/aggbug/342392.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> 2011-01-06 01:40 <a href="http://www.blogjava.net/leekiang/archive/2011/01/06/342392.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>rails敏捷书笔记</title><link>http://www.blogjava.net/leekiang/archive/2010/11/15/338098.html</link><dc:creator>leekiang</dc:creator><author>leekiang</author><pubDate>Mon, 15 Nov 2010 06:57:00 GMT</pubDate><guid>http://www.blogjava.net/leekiang/archive/2010/11/15/338098.html</guid><wfw:comment>http://www.blogjava.net/leekiang/comments/338098.html</wfw:comment><comments>http://www.blogjava.net/leekiang/archive/2010/11/15/338098.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/leekiang/comments/commentRss/338098.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/leekiang/services/trackbacks/338098.html</trackback:ping><description><![CDATA[1,ORM 层将数据库表映射到类、将记录映射到对象、将字段映射到对象的属性。<br />类方法用于执行表级别的操作，实例方法则用于执行针对单条记录的操作。<br />2,Action Pack包含了视图和控制器<br />3,rails有三种方式创建动态的模板，其一是使用“构建器”(Builder)这种技术，<br />其二是将Ruby代码嵌入模板中，第三种是rjs在服务器端动态产生js<br />4,&lt;% 3.times do %&gt; <br />Ho!&lt;br /&gt;<br />&lt;% end %&gt;<br />Merry Christmas!<br />&lt;% 3.times do %&gt; 会输出空格，而&lt;% 3.times do -%&gt; 不会<br />5,Rails 的辅助方法h()用于对html符号转码<br />6,如果货品的价格发生变化，那么已经下好的订单不应该受到影响，因此每个订单条目都应该反映下单时的货品价格<br />7,erb的content_for(:name)标签里的内容可加到模板&lt;%=yield :name%&gt;所处位置<br />8,敏捷书第三版上说金额不要用float字段，而要用decimal字段<img src ="http://www.blogjava.net/leekiang/aggbug/338098.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-11-15 14:57 <a href="http://www.blogjava.net/leekiang/archive/2010/11/15/338098.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>关于clockingit</title><link>http://www.blogjava.net/leekiang/archive/2010/10/21/335733.html</link><dc:creator>leekiang</dc:creator><author>leekiang</author><pubDate>Wed, 20 Oct 2010 16:08:00 GMT</pubDate><guid>http://www.blogjava.net/leekiang/archive/2010/10/21/335733.html</guid><wfw:comment>http://www.blogjava.net/leekiang/comments/335733.html</wfw:comment><comments>http://www.blogjava.net/leekiang/archive/2010/10/21/335733.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/leekiang/comments/commentRss/335733.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/leekiang/services/trackbacks/335733.html</trackback:ping><description><![CDATA[用的版本1.2.1<br />必须跑在ruby1.8.7和rails2.3.8，否则出各种问题<br />要执行rake db:schema:load,把schema.rb里设定的数据表结构同步到数据库<br /><br />http://www.soft4fun.net/website-recommand/%E7%B6%B2%E7%AB%99%E6%8E%A8%E8%96%A6-%E8%B6%85%E4%BE%BF%E5%88%A9%E7%B6%B2%E8%B7%AF%E8%A8%98%E4%BA%8B%E7%B3%BB%E7%B5%B1-clockingit%EF%BC%88%E5%A4%9A%E7%94%A8%E6%88%B6%E4%BD%BF%E7%94%A8%E7%AF%87.htm<br />http://www.soft4fun.net/website-recommand/%E7%B6%B2%E7%AB%99%E6%8E%A8%E8%96%A6-%E8%B6%85%E4%BE%BF%E5%88%A9%E7%B6%B2%E8%B7%AF%E8%A8%98%E4%BA%8B%E7%B3%BB%E7%B5%B1%EF%BC%8C%E5%B9%AB%E4%BD%A0%E8%A8%98%E4%B8%8B%E6%89%80%E6%9C%89%E7%94%9F.htm<br /><img src ="http://www.blogjava.net/leekiang/aggbug/335733.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-10-21 00:08 <a href="http://www.blogjava.net/leekiang/archive/2010/10/21/335733.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>redmine记录</title><link>http://www.blogjava.net/leekiang/archive/2010/10/15/335244.html</link><dc:creator>leekiang</dc:creator><author>leekiang</author><pubDate>Fri, 15 Oct 2010 08:34:00 GMT</pubDate><guid>http://www.blogjava.net/leekiang/archive/2010/10/15/335244.html</guid><wfw:comment>http://www.blogjava.net/leekiang/comments/335244.html</wfw:comment><comments>http://www.blogjava.net/leekiang/archive/2010/10/15/335244.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/leekiang/comments/commentRss/335244.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/leekiang/services/trackbacks/335244.html</trackback:ping><description><![CDATA[
		<br />
		<br />2,安装mysql(包括mysql的gem,还有那个libmySQL.dll要拷入到ruby/bin下)并建立名为"redmine"的schema<br />mysql&gt; create database redmine character set utf8;<br />mysql&gt; create user 'redmine'@'localhost' identified by 'redmine';<br />mysql&gt; grant all privileges on redmine.* to 'redmine'@'localhost';<br /><br />3,生成session密钥，执行数据迁移并载入Redmine默认配置<br />set RAILS_ENV=production<br />rake config/initializers/session_store.rb<br />rake db:migrate<br />rake redmine:load_default_data<br />注:1)lib\tasks\initializers.rake里定义了,rank generate_session_store等价于rake config/initializers/session_store.rb<br />   2)rake  redmine:load_default_data RAILS_ENV="production"<br />     可导入角色、权限、跟踪类型、问题状态、工作流程、枚举值的默认数据，见loader.rb<br /><br />5,项目有一个"是否公开"属性<br /><br />6,工作台可以自定义<br /><br />7,群英汇翻译的用户手册http://www.oschina.net/bbs/thread/9314，管理员手册http://www.oschina.net/bbs/thread/9437<br />  http://www.ossxp.com/doc/redmine/user_guide/user_guide.html<br />  http://www.ossxp.com/doc/redmine/admin_guide/admin_guide.html<br />  群英汇的统一认证平台http://www.ossxp.com/HelpCenter/10000_Jigsaw<br />  <br />  Techcon ezWORK团队任务管理系统也是基于redmine开发的，http://ezwork.techcon.thtf.com.cn/<br />  <br />8,插件列表http://www.redmine.org/wiki/redmine/Plugin_List<br />  http://www.ossxp.com/doc/redmine-plugins/下有几个插件的使用手册<br />  http://www.javaeye.com/topic/224772<br />  http://github.com/zouchaoqun/ezfaq/tree/master/app/<br />  <br />9,redmine权限设置心得<br />http://www.cnblogs.com/treeman/archive/2010/08/30/1812692.html<br /><br />10,组使用的表也是users表<br /><br />11,ticket分组插件<br />    http://www.redmine.org/boards/3/topics/4701，http://github.com/Ubik/redmine_issues_group<br />    另外一个http://www.redmine.org/issues/443<br />12,redmine高版本已经支持任务的无限嵌套，但界面没有体现<br /><br />20,bitnami提供的傻瓜安装包，见http://bitnami.org/stack/redmine<br /><br /><img src ="http://www.blogjava.net/leekiang/aggbug/335244.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-10-15 16:34 <a href="http://www.blogjava.net/leekiang/archive/2010/10/15/335244.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>rails好文</title><link>http://www.blogjava.net/leekiang/archive/2010/10/15/335243.html</link><dc:creator>leekiang</dc:creator><author>leekiang</author><pubDate>Fri, 15 Oct 2010 08:33:00 GMT</pubDate><guid>http://www.blogjava.net/leekiang/archive/2010/10/15/335243.html</guid><wfw:comment>http://www.blogjava.net/leekiang/comments/335243.html</wfw:comment><comments>http://www.blogjava.net/leekiang/archive/2010/10/15/335243.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/leekiang/comments/commentRss/335243.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/leekiang/services/trackbacks/335243.html</trackback:ping><description><![CDATA[1,Rails系统重构：从单一复杂系统到多个小应用集群http://www.infoq.com/cn/articles/rails-app-refactoring<br />2,http://www.smashingmagazine.com/2010/10/26/successful-freelancing-with-ruby-on-rails-workflow-techniques-and-tools/<br />3,http://www.rubyinside.com/11-tips-on-hiring-a-rails-developer-662.html<br />4,http://www.rubyinside.com/how-to-get-a-job-at-a-top-ruby-shop-1618.html<br />5,http://www.matthewpaulmoore.com/ruby-on-rails-code-quality-checklist<br />6,<a href="http://tech.it168.com/a2010/0819/1092/000001092762.shtml">Ruby on Rails性能问题解决之道</a><br /><br /><img src ="http://www.blogjava.net/leekiang/aggbug/335243.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-10-15 16:33 <a href="http://www.blogjava.net/leekiang/archive/2010/10/15/335243.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>railroad使用</title><link>http://www.blogjava.net/leekiang/archive/2010/10/14/335165.html</link><dc:creator>leekiang</dc:creator><author>leekiang</author><pubDate>Thu, 14 Oct 2010 10:56:00 GMT</pubDate><guid>http://www.blogjava.net/leekiang/archive/2010/10/14/335165.html</guid><wfw:comment>http://www.blogjava.net/leekiang/comments/335165.html</wfw:comment><comments>http://www.blogjava.net/leekiang/archive/2010/10/14/335165.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/leekiang/comments/commentRss/335165.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/leekiang/services/trackbacks/335165.html</trackback:ping><description><![CDATA[
		<code>1，gem install railroad</code> 装的版本是0.5.0<br />2, 安装graphviz-2.26.3.msi<br />3, 在应用目录下railroad -M | dot -Tsvg &gt; models.svg，报错:<br />C:/Ruby186/lib/ruby/gems/1.8/gems/railroad-0.5.0/lib/railroad/app_diagram.rb:54:<br />in `reopen': No such file or directory - /dev/null (Errno::ENOENT)<br />   搜到篇文章说把c:/Ruby186/lib\ruby\gems\1.8\gems\railroad-0.5.5\lib\railroad下的app_diagram.rb的54行改为<code class="spaces"></code><code class="ruby constants">STDOUT</code><code class="ruby plain">.reopen(</code><code class="ruby string">'NUL:'</code><code class="ruby plain">)</code><em><br /></em><em></em>把controllers_diagram.rb的39行改为require "app/controllers/application_controller.rb" <br />按要求修改后在应用下执行railroad -a -i -M | dot -Tpng &gt; models.png，又报:<br />D:/netbeansWorkSpace/redmine/vendor/rails/activesupport/lib/active_support/w<br />hiny_nil.rb:52:in `method_missing': undefined method `klass' for nil:NilClass (N<br />oMethodError)<br /><br />注:ruby为1.8.6,rails为2.3.5<br />参考:<br />http://www.javaeye.com/topic/88700<br />http://blog.brzezinka.eu/webmaster-tips/ruby/ror-railroad-plugin-with-rails-2-3-5-on-windows-error<br /><br /><br />该文章后面讲了如何使用rake自动生成，copy如下:<br />To automate the process of creating schemes, you can create Rails 
task. In your <em>rails_project_dir/Libs/tasks</em> create <em>diagrams.rake
 </em>and copy the text:<div style="background-color: rgb(238, 238, 238); font-size: 13px; border: 1px solid rgb(204, 204, 204); padding: 4px 5px 4px 4px; 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);">namespace </span><span style="color: rgb(0, 0, 0);">:</span><span style="color: rgb(0, 0, 0);">doc </span><span style="color: rgb(0, 0, 255);">do</span><span style="color: rgb(0, 0, 0);"><br />  namespace </span><span style="color: rgb(0, 0, 0);">:</span><span style="color: rgb(0, 0, 0);">diagram </span><span style="color: rgb(0, 0, 255);">do</span><span style="color: rgb(0, 0, 0);"><br />    task </span><span style="color: rgb(0, 0, 0);">:</span><span style="color: rgb(0, 0, 0);">models </span><span style="color: rgb(0, 0, 255);">do</span><span style="color: rgb(0, 0, 0);"><br />      sh </span><span style="color: rgb(0, 0, 0); font-weight: bold;">"</span><span style="color: rgb(0, 0, 0); font-weight: bold;">railroad -a -i -M | dot -Tpng &gt; doc/models.png</span><span style="color: rgb(0, 0, 0); font-weight: bold;">"</span><span style="color: rgb(0, 0, 0);"><br />      sh </span><span style="color: rgb(0, 0, 0); font-weight: bold;">"</span><span style="color: rgb(0, 0, 0); font-weight: bold;">railroad -i -l -a -m -M | dot -Tsvg doc/models.svg</span><span style="color: rgb(0, 0, 0); font-weight: bold;">"</span><span style="color: rgb(0, 0, 0);"><br />    end<br /><br />    task </span><span style="color: rgb(0, 0, 0);">:</span><span style="color: rgb(0, 0, 0);">controllers </span><span style="color: rgb(0, 0, 255);">do</span><span style="color: rgb(0, 0, 0);"><br />      sh </span><span style="color: rgb(0, 0, 0); font-weight: bold;">"</span><span style="color: rgb(0, 0, 0); font-weight: bold;">railroad -i -l -C | neato -Tsvg &gt; doc/controllers.svg</span><span style="color: rgb(0, 0, 0); font-weight: bold;">"</span><span style="color: rgb(0, 0, 0);"><br />    end<br />  end<br /><br />  task </span><span style="color: rgb(0, 0, 0);">:</span><span style="color: rgb(0, 0, 0);">diagrams </span><span style="color: rgb(0, 0, 0);">=&gt;</span><span style="color: rgb(0, 0, 0);"> </span><span style="color: rgb(128, 0, 128);">%w</span><span style="color: rgb(0, 0, 0);">(diagram</span><span style="color: rgb(0, 0, 0);">:</span><span style="color: rgb(0, 0, 0);">models diagram</span><span style="color: rgb(0, 0, 0);">:</span><span style="color: rgb(0, 0, 0);">controllers)<br /><br />end</span></div><br /><p>Now you can run the task by typing in console: <em>rake doc:diagrams</em>
 to generate all diagrams (for models an controllers) or <em>rake 
doc:diagram:models</em> to generate diagram for models only.</p><p>Due to the information on <a href="http://railroad.rubyforge.org/" onclick="javascript:_gaq.push(['_trackEvent','outbound-article','railroad.rubyforge.org']);" target="_blank">RailsRoad Docs</a>, there is a bug in Graphvis while 
crating svg graphic. There is a simple way to correct it (citation from 
RailsRoad Docs):</p><blockquote><p><strong>Important:</strong> There is a bug in <em>Graphviz</em>
 tools when generating<em>SVG</em> files that	cause a text overflow. You
 can solve this problem editing (with a text editor, not a graphical <em>SVG</em>
 editor) the file and replacing around line 12 „<code>font-size:14.00;</code>”
 by „<code>font-size:11.00;</code>„, or by issuing the following command
 (see „<code>man sed</code>„):</p><pre>sed -i 's/font-size:14.00/font-size:11.00/g' file.svg</pre><p><strong>Note:</strong> For viewing and editing <em>SVG</em> there is 
an excellent opensource tool called <a href="http://www.inkscape.org/" onclick="javascript:_gaq.push(['_trackEvent','outbound-article','www.inkscape.org']);"><em>Inkscape</em></a>
 (similar to <em>Adobe Illustrator</em>.) For <em>DOT</em>processing you
 can also use <em>Omnigraffle</em> (on <em>Mac OS X</em>).</p></blockquote><br /><br /><img src ="http://www.blogjava.net/leekiang/aggbug/335165.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-10-14 18:56 <a href="http://www.blogjava.net/leekiang/archive/2010/10/14/335165.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>windows下rails开发环境搭建</title><link>http://www.blogjava.net/leekiang/archive/2010/10/13/335057.html</link><dc:creator>leekiang</dc:creator><author>leekiang</author><pubDate>Wed, 13 Oct 2010 09:13:00 GMT</pubDate><guid>http://www.blogjava.net/leekiang/archive/2010/10/13/335057.html</guid><wfw:comment>http://www.blogjava.net/leekiang/comments/335057.html</wfw:comment><comments>http://www.blogjava.net/leekiang/archive/2010/10/13/335057.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/leekiang/comments/commentRss/335057.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/leekiang/services/trackbacks/335057.html</trackback:ping><description><![CDATA[1,安装ruby1.8.6-p398,把添加环境变量那一项打勾<br />2,安装rails<br />  gem install rails -v=2.3.5<br />3,安装rdoc，版本为rdoc-2.5.11.gem<br />http://rubyforge.org/frs/?group_id=627<br />没有安装rdoc-data-2.5.3.gem，不知道有没有问题<br />4,在Mysql安装目录的bin 目录下，找到 ibmySQL.dll ，将该文件Copy到　Ruby安装目录的 bin目录中。 <br />到http://rubyforge.org/projects/mysql-win下载安装mysql-2.8.1-x86-mswin32.gem<br />5,乱码的问题参见http://www.javaeye.com/topic/66347<br />  修改MySQL的配置文件C:\Program Files\MySQL\MySQL Server 5.0\my.ini，改其中的两处default-character-set=utf8,改完后重启MySQL，schema也要重建.<br />  mysql的编码有没有改过来以字段的编码为准。<br />  我发现经netbeans6.9编辑过的erb文件的编码为utf-8无BOM<br />6,在项目路径下执行rake gems:install,会自动安装environment.rb里标明的gem<br />  如果rake gems:install RAILS_ENV=test，那么会自动安装config\environments\test.rb里标明的gem<br />  这些gem都会安装到C:\ruby\lib\ruby\gems\1.8\gems下。如果同一个gem在多个项目中版本不一样如何处理<br />7,rake rails:update是对旧rails版本的项目进行升级吗?<br />8,使用sqlite3<br />  <span class="quoting-level-1">gem install sqlite3-ruby</span><br />  下载http://www.sqlite.org/sqlitedll-3_6_23_1.zip，解压放到ruby\bin下。<br />  test:<br />  adapter: sqlite3<br />  database: db/test.sqlite3<br />  pool: 5<br />  timeout: 5000<br /><pre><br /></pre><img src ="http://www.blogjava.net/leekiang/aggbug/335057.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-10-13 17:13 <a href="http://www.blogjava.net/leekiang/archive/2010/10/13/335057.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>ApplicationController</title><link>http://www.blogjava.net/leekiang/archive/2010/04/19/318702.html</link><dc:creator>leekiang</dc:creator><author>leekiang</author><pubDate>Sun, 18 Apr 2010 17:46:00 GMT</pubDate><guid>http://www.blogjava.net/leekiang/archive/2010/04/19/318702.html</guid><wfw:comment>http://www.blogjava.net/leekiang/comments/318702.html</wfw:comment><comments>http://www.blogjava.net/leekiang/archive/2010/04/19/318702.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/leekiang/comments/commentRss/318702.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/leekiang/services/trackbacks/318702.html</trackback:ping><description><![CDATA[rails2.0为了防范CSRF (Cross-Site Request 
Forgery)攻击，提供了一个小小的手段，那就是protect_from_forgery<br /><br />http://api.rubyonrails.org/classes/ActionController/RequestForgeryProtection/ClassMethods.html<br /><img src ="http://www.blogjava.net/leekiang/aggbug/318702.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-04-19 01:46 <a href="http://www.blogjava.net/leekiang/archive/2010/04/19/318702.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>rails验证</title><link>http://www.blogjava.net/leekiang/archive/2010/03/22/316105.html</link><dc:creator>leekiang</dc:creator><author>leekiang</author><pubDate>Sun, 21 Mar 2010 17:55:00 GMT</pubDate><guid>http://www.blogjava.net/leekiang/archive/2010/03/22/316105.html</guid><wfw:comment>http://www.blogjava.net/leekiang/comments/316105.html</wfw:comment><comments>http://www.blogjava.net/leekiang/archive/2010/03/22/316105.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/leekiang/comments/commentRss/316105.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/leekiang/services/trackbacks/316105.html</trackback:ping><description><![CDATA[validates_inclusion_of用于确保对象的属性值在指定的集合中<br /><br />http://hot88zh.javaeye.com/blog/512561<br /><img src ="http://www.blogjava.net/leekiang/aggbug/316105.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-22 01:55 <a href="http://www.blogjava.net/leekiang/archive/2010/03/22/316105.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>rails处理模型关系的表单嵌套</title><link>http://www.blogjava.net/leekiang/archive/2010/03/06/314667.html</link><dc:creator>leekiang</dc:creator><author>leekiang</author><pubDate>Fri, 05 Mar 2010 18:24:00 GMT</pubDate><guid>http://www.blogjava.net/leekiang/archive/2010/03/06/314667.html</guid><wfw:comment>http://www.blogjava.net/leekiang/comments/314667.html</wfw:comment><comments>http://www.blogjava.net/leekiang/archive/2010/03/06/314667.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/leekiang/comments/commentRss/314667.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/leekiang/services/trackbacks/314667.html</trackback:ping><description><![CDATA[rails2.3 在处理 模型关系 的表单嵌套上，非常方便实用的特性
<br />http://ryandaigle.com/articles/2009/2/1/what-s-new-in-edge-rails-nested-attributes<br /><a href="http://xanderzhang.javaeye.com/blog/426583">来源</a><br /><img src ="http://www.blogjava.net/leekiang/aggbug/314667.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 02:24 <a href="http://www.blogjava.net/leekiang/archive/2010/03/06/314667.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Rails的Association</title><link>http://www.blogjava.net/leekiang/archive/2010/02/21/313488.html</link><dc:creator>leekiang</dc:creator><author>leekiang</author><pubDate>Sat, 20 Feb 2010 18:20:00 GMT</pubDate><guid>http://www.blogjava.net/leekiang/archive/2010/02/21/313488.html</guid><wfw:comment>http://www.blogjava.net/leekiang/comments/313488.html</wfw:comment><comments>http://www.blogjava.net/leekiang/archive/2010/02/21/313488.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/leekiang/comments/commentRss/313488.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/leekiang/services/trackbacks/313488.html</trackback:ping><description><![CDATA[http://andyhu1007.javaeye.com/blog/450384<img src ="http://www.blogjava.net/leekiang/aggbug/313488.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:20 <a href="http://www.blogjava.net/leekiang/archive/2010/02/21/313488.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></channel></rss>