<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/css" href="/stylesheets/rss.css"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/">
  <channel>
    <title>Captain's Log: Category Ruby on Rails</title>
    <link>http://www.cslog.cn/category/ruby-on-rails</link>
    <language>en-us</language>
    <ttl>40</ttl>
    <description>&#26368;&#35753;&#25105;&#28608;&#21160;&#30340;&#26159;&#27809;&#21150;&#27861;&#30693;&#36947;&#22312;&#19979;&#20010;&#26143;&#29699;&#19978;&#20320;&#33021;&#21457;&#29616;&#20160;&#20040;...</description>
    <item>
      <title>[BUG] cross-thread violation on rb_gc()</title>
      <description>&#20170;&#22825;&#22312;mac os x leopard&#19978;&#23433;&#35013;typo&#26102;&#36935;&#21040;&lt;br /&gt;
[BUG] cross-thread violation on rb_gc()&lt;br /&gt;
&#38169;&#35823;.&lt;br /&gt;
google&#20102;&#19968;&#19979;, &#21457;&#19979;&#26377;&#21487;&#33021;&#26159;&#22240;&#20026;&#31995;&#32479;&#19978;&#23433;&#35013;&#20102;&#22810;&#20010;&#29256;&#26412;&#30340;ruby &#24341;&#36215;&#30340;. &#25105;&#30340;mac&#19978;&#30340;&#30830;&#26377;&#22810;&#20010;ruby: &#19968;&#20010;&#26159;leopard&#21407;&#24102;&#30340;, &#21478;&#19968;&#20010;&#26159;&#33258;&#24049;&#29992;macport&#23433;&#35013;&#30340;. &#20294;&#26159;&#31995;&#32479;&#21407;&#24102;&#30340;ruby1.8.6&#24050;&#32463;&#22312;&#28165;&#29702;&#30828;&#30424;&#31354;&#38388;&#26102;&#32473;&#21024;&#38500;&#20102;, &#25991;&#20214;&#24555;&#25463;&#38142;&#25509;&#20063;&#37117;&#25442;&#20102;, &#20351;&#29992;ruby -v&#20063;&#26174;&#31034;&#26159;1.8.7&#29256;&#30340;&#20449;&#24687;. &lt;br /&gt;
&#20840;&#31995;&#32479;&#25628;&#32034;&#20102;&#19968;&#19979;, &#31455;&#28982;&#21457;&#29616;&#31995;&#32479;&#19978;&#36824;&#26377;&#20010;&lt;br /&gt;
/System/Library/Frameworks/Ruby.framework/Versions/Current/usr&lt;br /&gt;
&#37324;&#38754;&#24102;&#26377;ruby&#25991;&#20214;.&lt;br /&gt;
&#23558;&#23427;&#21435;&#38500;, &#25913;&#25104;&#19968;&#20010;&#25991;&#20214;&#24555;&#25463;&#38142;&#25509;&#21040;&#33258;&#24049;&#23433;&#35013;&#30340;&#37027;&#20010;ruby&#25991;&#20214;&#37027;&#37324;, &#38382;&#39064;&#35299;&#20915;&#20102;.</description>
      <pubDate>Wed, 13 May 2009 18:00:00 +0800</pubDate>
      <guid isPermaLink="false">urn:uuid:d0ea1d8d-b475-48d7-8492-dc8d4297e11a</guid>
      <author>Captain Zhan</author>
      <link>http://www.cslog.cn/Content/BUG-cross-thread-violation-on-rb_gc-ruby-leopard</link>
      <category>Ruby on Rails</category>
      <category>ruby</category>
      <category>leopard</category>
    </item>
    <item>
      <title>&#24590;&#26679;&#30475;&#26412;&#22320;ruby gem&#30340;rDoc&#25991;&#26723;</title>
      <description>&#22312;&#26412;&#22320;&#26597;&#30475;rDoc&#25991;&#26723;&#20854;&#23454;&#24456;&#31616;&#21333;, &#21482;&#35201;&#36816;&#34892;:&lt;br /&gt;
gem server&lt;br /&gt;
&#20320;&#23601;&#21487;&#20197;&#29992;&#27983;&#35272;&#22120;&#36890;&#36807; http://localhost:8808/ &#32593;&#22336;&#26597;&#30475;&#25152;&#26377;&#24050;&#32463;&#23433;&#35013;&#30340;ruby gem&#30340;rDoc&#25991;&#26723;&#20102;.</description>
      <pubDate>Mon, 11 May 2009 17:54:00 +0800</pubDate>
      <guid isPermaLink="false">urn:uuid:b0e0ff81-bddf-4e69-8009-804fc336e2f0</guid>
      <author>Captain Zhan</author>
      <link>http://www.cslog.cn/Content/howto-view-ruby-gem-rdoc</link>
      <category>Ruby on Rails</category>
      <category>ruby</category>
      <category>rdoc</category>
    </item>
    <item>
      <title>ruby&#20013;10&#36827;&#21046;&#21644;16&#36827;&#21046;&#30340;&#36716;&#25442;</title>
      <description>16&#36827;&#21046;&#21040;10&#36827;&#21046;:&lt;br /&gt;
&amp;gt;&amp;gt; &amp;quot;B0A0&amp;quot;.hex&lt;br /&gt;
=&amp;gt; 45216&lt;br /&gt;
&#25110;&lt;br /&gt;
&amp;gt;&amp;gt; &amp;quot;B0A0&amp;quot;.to_i(16)&lt;br /&gt;
=&amp;gt; 45216&lt;br /&gt;
10&#36827;&#21046;&#21040;16&#36827;&#21046;:&lt;br /&gt;
&amp;gt;&amp;gt; 45216.to_s(16)&lt;br /&gt;
=&amp;gt; &amp;quot;b0a0&amp;quot;</description>
      <pubDate>Mon, 29 Dec 2008 23:25:00 +0800</pubDate>
      <guid isPermaLink="false">urn:uuid:aee75417-32ac-457d-a0ce-cfa29dd62092</guid>
      <author>Captain Zhan</author>
      <link>http://www.cslog.cn/Content/ruby-hex-dec</link>
      <category>Ruby on Rails</category>
    </item>
    <item>
      <title>Ruby&#20013;&#22914;&#20309;&#22797;&#21046;&#23545;&#35937; (deep clone)</title>
      <description>&#29992;Ruby&#22797;&#21046;&#19968;&#20010;&#23545;&#35937;(object)&#20063;&#35768;&#27809;&#26377;&#20320;&#24819;&#20687;&#30340;&#37027;&#20040;&#23481;&#26131;. &#20170;&#22825;&#25105;google&#20102;&#21322;&#22825;, &#20570;&#20010;&#24635;&#32467;&#21543;.&lt;br /&gt;
&#20808;&#20174;&#26368;&#31616;&#21333;&#30340;&#24320;&#22987;, b = a &#26159;&#22797;&#21046;&#21527;? &#30475;&#20195;&#30721;&#35828;&#35805;:&lt;br /&gt;
&amp;gt;&amp;gt; a= [0,[1,2]]&lt;br /&gt;
&amp;gt;&amp;gt; b=a&lt;br /&gt;
&amp;gt;&amp;gt; b[0]=88&lt;br /&gt;
&amp;gt;&amp;gt; b[1][0]=99&lt;br /&gt;
&amp;gt;&amp;gt; b&amp;nbsp; &lt;br /&gt;
=&amp;gt; [88, [99, 2]]&lt;br /&gt;
&amp;gt;&amp;gt; a&amp;nbsp; &lt;br /&gt;
=&amp;gt; [88, [99, 2]]&lt;br /&gt;
&#20174;&#19978;&#38754;&#20195;&#30721;&#21457;&#29616;, &#19968;&#20294;&#20462;&#25913;b, &#21407;&#26469;&#30340;a&#20063;&#21516;&#26102;&#34987;&#25913;&#21464;&#20102;. &#29978;&#33267;:&lt;br /&gt;
</description>
      <pubDate>Sat, 13 Dec 2008 21:13:00 +0800</pubDate>
      <guid isPermaLink="false">urn:uuid:7b3506c5-6164-406d-9fcf-06ad54f19423</guid>
      <author>Captain Zhan</author>
      <link>http://www.cslog.cn/Content/ruby-deep-clone</link>
      <category>Ruby on Rails</category>
    </item>
    <item>
      <title>&#29992;Benchmark&#27979;&#35797;&#19981;&#21516;ruby&#20195;&#30721;&#30340;&#36816;&#34892;&#36895;&#24230;</title>
      <description>&#22914;&#26524;&#27604;&#36739;&#21151;&#33021;&#30456;&#21516;&#30340;&#20960;&#32452;&#20195;&#30721;&#30340;&#36816;&#34892;&#36895;&#24230;, &#21487;&#20197;&#20351;&#29992;ruby&#35821;&#35328;&#37324;&#30340;&lt;a href="http://ruby-doc.org/core/classes/Benchmark.html"&gt;Benchmark&lt;/a&gt;&#27169;&#22359;.&lt;br /&gt;
(&#24320;&#22987;&#21069; &#35774;&#32622;&#20013;&#25991;&#29615;&#22659;, $KCODE = 'u')&lt;br /&gt;
&#27604;&#22914;, &#36830;&#25509;&#20004;&#20010;&#23383;&#20018;, &#22914;:&lt;br /&gt;
str1 = &amp;quot;&#20013;&#22269;&amp;quot;&lt;br /&gt;
str2 = &amp;quot;&#19968;&#23450;&#24378;!!!&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&#21487;&#20197;&#20351;&#29992;+&lt;br /&gt;
?&amp;gt; str1 + str2&lt;br /&gt;
=&amp;gt; &amp;quot;&#20013;&#22269;&#19968;&#23450;&#24378;!!!&amp;quot;&lt;br /&gt;
&#20063;&#21487;&#20351;&#29992;&lt;br /&gt;
&amp;gt;&amp;gt; &amp;quot;#{str1}#{str2}&amp;quot;&lt;br /&gt;
=&amp;gt; &amp;quot;&#20013;&#22269;&#19968;&#23450;&#24378;!!!&amp;quot;&lt;br /&gt;
&#36824;&#21487;&#20197;&#20351;&#29992;&amp;lt;&amp;lt;&lt;br /&gt;
&amp;gt;&amp;gt; str1 &amp;lt;&amp;lt; str2&lt;br /&gt;
=&amp;gt; &amp;quot;&#20013;&#22269;&#19968;&#23450;&#24378;!!!&amp;quot;&lt;br /&gt;
(&#27880;&#24847;&#36825;&#31181;&#26041;&#27861;&#20250;&#25913;&#21464;str1&#30340;&#20540;, &lt;br /&gt;
&amp;gt;&amp;gt; str1&lt;br /&gt;
=&amp;gt; &amp;quot;&#20013;&#22269;&#19968;&#23450;&#24378;!!!&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&#22914;&#26524;&#24819;&#35201;&#30693;&#36947;&#36825;&#19977;&#31181;&#26041;&#27861;&#21738;&#19968;&#20010;&#36895;&#24230;&#26356;&#24555;, &#23601;&#21487;&#20197;&#20351;&#29992;Benchmark&#27604;&#36739;.&lt;br /&gt;
&#20808;&#23450;&#20041;&#19977;&#20010;&#19981;&#21516;&#30340;&#26041;&#27861;:&lt;br /&gt;
</description>
      <pubDate>Sun, 17 Aug 2008 23:20:00 +0800</pubDate>
      <guid isPermaLink="false">urn:uuid:aafe0fe8-c507-43b1-bd1a-7645e91add3a</guid>
      <author>Captain Zhan</author>
      <link>http://www.cslog.cn/Content/ruby_benchmark</link>
      <category>Ruby on Rails</category>
    </item>
    <item>
      <title>&#29992;ruby&#35821;&#35328;&#20197;&#21477;&#23376;&#20026;&#21333;&#20301;&#25286;&#20998;&#19968;&#20010;&#23383;&#20018;</title>
      <description>&#30446;&#26631;, &#29992;ruby&#35821;&#35328;&#20197;&#21477;&#23376;&#20026;&#21333;&#20301;&#25286;&#20998;&#19968;&#20010;&#23383;&#20018;. &#22914;:&lt;br /&gt;
&#32473;&#20986;&#23383;&#20018;:&lt;br /&gt;
s=&amp;quot;&#36825;&#26159;&#19968;&#20010;&#21477;&#23376;,&#21478;&#19968;&#20010;&#21477;&#23376;.&#19968;&#20010;&#26032;&#21477;&#23376;!&#38590;&#36947;&#36825;&#19981;&#26159;&#21478;&#19968;&#20010;&#21477;&#23376;&#21527;?&amp;quot;&lt;br /&gt;
&#23558;&#23427;&#20998;&#25286;&#20026;:&lt;br /&gt;
&amp;nbsp;[&amp;quot;&#36825;&#26159;&#19968;&#20010;&#21477;&#23376;,&amp;quot;], [&amp;quot;&#21478;&#19968;&#20010;&#21477;&#23376;.&amp;quot;], [&amp;quot;&#19968;&#20010;&#26032;&#21477;&#23376;!&amp;quot;], [&amp;quot;&#38590;&#36947;&#36825;&#19981;&#26159;&#21478;&#19968;&#20010;&#21477;&#23376;&#21527;?&amp;quot;]&lt;br /&gt;
&#26679;&#24335;.&lt;br /&gt;
&#27979;&#35797;&#21069;&#23558;ruby&#30340;$KCODE&#29615;&#22659;&#21464;&#37327;&#35774;&#32622;&#20026;'u', &#21551;&#21160;UTF8&#32534;&#30721;&#25903;&#25345;&#20013;&#25991;.&lt;br /&gt;
$KCODE='u'&lt;br /&gt;
&#23581;&#35797;1:&lt;br /&gt;
&amp;gt;&amp;gt; s.split(/\.|,|\?|\!/)&lt;br /&gt;
=&amp;gt; [&amp;quot;&#36825;&#26159;&#19968;&#20010;&#21477;&#23376;&amp;quot;, &amp;quot;&#21478;&#19968;&#20010;&#21477;&#23376;&amp;quot;, &amp;quot;&#19968;&#20010;&#26032;&#21477;&#23376;&amp;quot;, &amp;quot;&#38590;&#36947;&#36825;&#19981;&#26159;&#21478;&#19968;&#20010;&#21477;&#23376;&#21527;&amp;quot;]&lt;br /&gt;
&#31561;&#21516;&#20110;:&lt;br /&gt;
&amp;gt;&amp;gt; s.split(/[.,!?]/)&lt;br /&gt;
=&amp;gt; [&amp;quot;&#36825;&#26159;&#19968;&#20010;&#21477;&#23376;&amp;quot;, &amp;quot;&#21478;&#19968;&#20010;&#21477;&#23376;&amp;quot;, &amp;quot;&#19968;&#20010;&#26032;&#21477;&#23376;&amp;quot;, &amp;quot;&#38590;&#36947;&#36825;&#19981;&#26159;&#21478;&#19968;&#20010;&#21477;&#23376;&#21527;&amp;quot;]&lt;br /&gt;
&#34429;&#28982;&#20998;&#24320;&#20102;&#21477;&#23376;, &#20294;&#22833;&#21435;&#20102;&#26631;&#28857;.&lt;br /&gt;
&lt;br /&gt;
&amp;gt;&amp;gt; s.split(/([.,!?])/)&lt;br /&gt;
=&amp;gt; [&amp;quot;&#36825;&#26159;&#19968;&#20010;&#21477;&#23376;&amp;quot;, &amp;quot;,&amp;quot;, &amp;quot;&#21478;&#19968;&#20010;&#21477;&#23376;&amp;quot;, &amp;quot;.&amp;quot;, &amp;quot;&#19968;&#20010;&#26032;&#21477;&#23376;&amp;quot;, &amp;quot;!&amp;quot;, &amp;quot;&#38590;&#36947;&#36825;&#19981;&#26159;&#21478;&#19968;&#20010;&#21477;&#23376;&#21527;&amp;quot;, &amp;quot;?&amp;quot;]&lt;br /&gt;
&#29992;&#25324;&#21495;&#23558;&#27491;&#21017;&#32452;&#25104;&#19968;&#32452;, &#26631;&#28857;&#20986;&#26469;&#20102;, &#20294;&#21644;&#21477;&#23376;&#26159;&#20998;&#24320;&#30340;.&lt;br /&gt;
&lt;br /&gt;
&#25913;&#29992;scan&lt;br /&gt;
&amp;gt;&amp;gt; s.scan /.+?[.,?!]/&lt;br /&gt;
=&amp;gt; [&amp;quot;&#36825;&#26159;&#19968;&#20010;&#21477;&#23376;,&amp;quot;], [&amp;quot;&#21478;&#19968;&#20010;&#21477;&#23376;.&amp;quot;], [&amp;quot;&#19968;&#20010;&#26032;&#21477;&#23376;!&amp;quot;], [&amp;quot;&#38590;&#36947;&#36825;&#19981;&#26159;&#21478;&#19968;&#20010;&#21477;&#23376;&#21527;?&amp;quot;]&lt;br /&gt;
&#25104;&#21151;&#20102;!!&lt;br /&gt;
&lt;br /&gt;
&#22914;&#26524;&#19968;&#23450;&#35201;&#36825;&#26679;:&lt;br /&gt;
&amp;gt;&amp;gt; s.scan(/(.+?(\.|\?|\!))/).collect{|p|p[0]}&lt;br /&gt;
=&amp;gt; [&amp;quot;&#36825;&#26159;&#19968;&#20010;&#21477;&#23376;,&#21478;&#19968;&#20010;&#21477;&#23376;.&amp;quot;, &amp;quot;&#19968;&#20010;&#26032;&#21477;&#23376;!&amp;quot;, &amp;quot;&#38590;&#36947;&#36825;&#19981;&#26159;&#21478;&#19968;&#20010;&#21477;&#23376;&#21527;?&amp;quot;]&lt;br /&gt;
&#20063;&#26159;&#21487;&#34892;&#30340;.</description>
      <pubDate>Sat, 16 Aug 2008 20:41:00 +0800</pubDate>
      <guid isPermaLink="false">urn:uuid:dc004daa-f010-4512-a6ff-f11de6fe0c4c</guid>
      <author>Captain Zhan</author>
      <link>http://www.cslog.cn/Content/string_to_sentences_with_ruby</link>
      <category>Ruby on Rails</category>
    </item>
    <item>
      <title>Rails string&#23383;&#31526;&#20018;&#30456;&#20851;&#36716;&#25442;</title>
      <description>&#24635;&#32467;&#23383;&#20018;&#36716;&#21464;&#21040;&#20854;&#23427;&#19982;&#23427;&#30456;&#20851;&#30340;object&#30340;&#26041;&#27861;. &#22312;&#36825;&#37324;&#25972;&#29702;&#20998;&#20139;&#19968;&#19979;, &#24076;&#26395;&#33021;&#24110;&#21161;&#21040;&#20320;.&lt;br /&gt;
&lt;br /&gt;
&#21464;&#37327;&#30456;&#20851;&lt;br /&gt;
&#35835;&#21462;&lt;br /&gt;
&lt;pre&gt;&lt;span class="ident"&gt;instance_variable_get&lt;/span&gt;&lt;span class="punct"&gt;(&amp;quot;&lt;/span&gt;&lt;span class="string"&gt;@name&lt;/span&gt;&lt;span class="punct"&gt;&amp;quot;)&lt;/span&gt;     &lt;span class="comment"&gt;#&#36820;&#22238;@name&#20540;&lt;/span&gt;&lt;/pre&gt;
&#35774;&#32622;&lt;br /&gt;
&lt;pre&gt;&lt;span class="ident"&gt;instance_variable_set&lt;/span&gt;&lt;span class="punct"&gt;(&amp;quot;&lt;/span&gt;&lt;span class="string"&gt;@name&lt;/span&gt;&lt;span class="punct"&gt;&amp;quot;,&lt;/span&gt; &lt;span class="punct"&gt;&amp;quot;&lt;/span&gt;&lt;span class="string"&gt;&#19977;&#22269;&#28436;&#20041;&lt;/span&gt;&lt;span class="punct"&gt;&amp;quot;)&lt;/span&gt; &lt;span class="comment"&gt;#@name =  &amp;quot;&#19977;&#22269;&#28436;&#20041;&amp;quot;&lt;/span&gt;&lt;/pre&gt;
method&#30456;&#20851;&lt;br /&gt;
string&#21040;method&#21517;&lt;br /&gt;
send&lt;br /&gt;
&lt;pre&gt;&lt;span class="ident"&gt;book&lt;/span&gt;&lt;span class="punct"&gt;.&lt;/span&gt;&lt;span class="ident"&gt;send&lt;/span&gt;&lt;span class="punct"&gt;(&amp;quot;&lt;/span&gt;&lt;span class="string"&gt;name&lt;/span&gt;&lt;span class="punct"&gt;&amp;quot;)&lt;/span&gt; &lt;span class="comment"&gt;#&#36820;&#22238; book.name&#20540;&lt;/span&gt;&lt;/pre&gt;
&#27880;&#24847;: book.send(&amp;quot;name&amp;quot;) = &amp;quot;&#19977;&#22269;&#28436;&#20041;&amp;quot; &#20250;&#20986;&#38169;. &lt;br /&gt;
&#20294;&#21487;&#20197;:&lt;br /&gt;
&lt;pre&gt;&lt;span class="ident"&gt;book&lt;/span&gt;&lt;span class="punct"&gt;.&lt;/span&gt;&lt;span class="ident"&gt;send&lt;/span&gt;&lt;span class="punct"&gt;(&amp;quot;&lt;/span&gt;&lt;span class="string"&gt;name=&lt;/span&gt;&lt;span class="punct"&gt;&amp;quot;,&lt;/span&gt; &lt;span class="punct"&gt;&amp;quot;&lt;/span&gt;&lt;span class="string"&gt;&#19977;&#22269;&#28436;&#20041;&lt;/span&gt;&lt;span class="punct"&gt;&amp;quot;)&lt;/span&gt; &lt;span class="comment"&gt;#book.name = &amp;quot;&#19977;&#22269;&#28436;&#20041;&amp;quot;&lt;/span&gt;&lt;/pre&gt;
&lt;br /&gt;
&#21333;&#22797;&#25968;&#36716;&#21270;&lt;br /&gt;
string&#22797;&#25968;&#21270;&lt;br /&gt;
pluralize&lt;br /&gt;
&#21487;&#29992;&#20110;&#29983;&#25104;table_name&lt;br /&gt;
&lt;pre&gt;&lt;span class="punct"&gt;&amp;quot;&lt;/span&gt;&lt;span class="string"&gt;country&lt;/span&gt;&lt;span class="punct"&gt;&amp;quot;.&lt;/span&gt;&lt;span class="ident"&gt;pluralize&lt;/span&gt; &lt;span class="comment"&gt;#=&amp;gt; &amp;quot;countries&amp;quot;&lt;/span&gt;&lt;/pre&gt;
</description>
      <pubDate>Fri, 25 Apr 2008 23:42:00 +0800</pubDate>
      <guid isPermaLink="false">urn:uuid:356b005a-3137-4c78-bdbd-48165a9dff6c</guid>
      <author>Captain Zhan</author>
      <link>http://www.cslog.cn/Content/rails_string_to_anything</link>
      <category>Ruby on Rails</category>
    </item>
    <item>
      <title>&#21322;semantic, &#25968;&#25454;&#30340;&#20215;&#20540;&#21644;&#25968;&#25454;&#26174;&#31034;</title>
      <description>&#35753;&#26426;&#22120;&#35835;&#25026;&#20043;&#21069;&#20808;&#35753;&#20154;&#35835;&#25026;!&lt;br /&gt;
&#20986;&#21457;&#28857;?&lt;br /&gt;
&amp;nbsp;&#25968;&#25454;&#30340;&#20215;&#20540;&#19981;&#19968;, &#22240;&#27492;&#19981;&#24212;&#35813;&#29992;&#21516;&#26679;&#30340;&#26041;&#24335;&#26174;&#31034;&#36825;&#20123;&#25968;&#25454;.&lt;br /&gt;
&amp;nbsp;&lt;br /&gt;
&#20215;&#20540;? &lt;br /&gt;
&#20215;&#20540;&#38024;&#23545;&#19981;&#21516;&#20010;&#20307;&#24212;&#35813;&#26159;&#19981;&#19968;&#26679;&#30340;, &#26377;&#26465;&#20214;&#26368;&#22909;&#20570;&#21040;&#38754;&#21521;&#19981;&#21516;&#20010;&#20307;(&#26681;&#25454;IP&#22320;&#22336;, &#24615;&#21035;, &#24180;&#40836;, &#21382;&#21490;&#35760;&#24405;), &#22914;&#26524;&#20570;&#19981;&#21040;&#23601;&#23613;&#37327;&#21147;&#27714;&#28385;&#36275;&#26368;&#22823;&#32676;&#20307;.&lt;br /&gt;
&lt;br /&gt;
&#25968;&#25454;&#24590;&#26679;&#30340;&#20215;&#20540;?&lt;br /&gt;
&#26377;&#29992;?/&#27809;&#26377;&#29992;?&lt;br /&gt;
&#37325;&#35201;?/&#19981;&#37325;&#35201;?&lt;br /&gt;
&#35201;&#32039;?/&#19981;&#35201;&#32039;?&lt;br /&gt;
&lt;br /&gt;
&#19981;&#21516;&#30340;&#26174;&#31034;?&lt;br /&gt;
&#25991;&#23383;:&#23383;&#20307;, &#23383;&#20307;&#22823;&#23567;, &#39068;&#33394;, &#24213;&#33394;... &#30452;&#25509;&#25913;&#29992;&#22270;&#26631;?&lt;br /&gt;
&#20301;&#32622;,:&#24038;&#19978;&#35282;?&amp;nbsp; &#25172;&#21040;&#26368;&#19979;&#38754;?&lt;br /&gt;
&lt;br /&gt;
&#26041;&#26696;&lt;br /&gt;
&#25968;&#25454;&#21644;&#26174;&#31034;&#30340;&#23545;&#25509;&lt;br /&gt;
&#25968;&#25454;&#36755;&#20986;&#26102;&#38468;&#24102;&#26174;&#31034;&#27169;&#24335;&#20449;&#24687;, &#23545;&#20934;&#22791;&#22909;&#30340;view pattern&#30452;&#25509;&#23545;&#25509;&lt;br /&gt;
out =&amp;gt; (data, view_options)&lt;br /&gt;
@title, @content, @sidebar, @item.name, @item.content &#21464;&#37327;&#21517;&#30452;&#25509;&#38468;&#24102;&#24847;&#20041;&lt;br /&gt;
&lt;br /&gt;
&#27604;rails&#26356;rails&lt;br /&gt;
&#20351;&#29992;&#32479;&#19968;&#30340;column&#21517;, &#22914;name, content...&lt;br /&gt;
&#20351;&#29992;&#32479;&#19968;&#30340;&#21464;&#37327;&#21517;, &#22914;@title, @item...&lt;br /&gt;
&#20351;&#29992;&#32479;&#19968;&#30340;view patterns, &#22914;&#29992;&#26469;&#26174;&#31034;&#21015;&#34920;&#30340;index&#39029;&#38754;, &#25442;&#21040;&#21738;&#20010;model&#19968;&#26679;&#20351;&#29992;.&lt;br /&gt;
&#20351;&#29992;&#32479;&#19968;&#30340;view &#23616;&#37096;pattern(&#26368;&#31616;&#21333;, google, wikipedia&#21270;, &#23454;&#29992;, &#21487;&#20197;&#25351;&#20986;&#25968;&#25454;&#30340;&#37325;&#35201;&#24615;, &#32654;&#35266;&#19981;&#26159;&#31532;&#19968;&#30340;, &#32654;&#35266;&#36824;&#36153;&#24102;&#23485;&#21644;&#32654;&#24037;), &#22914;&#21487;&#20197;&#37325;&#22797;&#20351;&#29992;&#30340;list&#26174;&#31034;pattern, comments&#26174;&#31034;pattern....</description>
      <pubDate>Sat, 22 Mar 2008 21:38:00 +0800</pubDate>
      <guid isPermaLink="false">urn:uuid:9905b95e-7043-4e1f-b4fe-974940f969b7</guid>
      <author>Captain Zhan</author>
      <link>http://www.cslog.cn/Content/half_semantic</link>
      <category>&#20449;&#24687;&#22788;&#29702;</category>
      <category>Ruby on Rails</category>
    </item>
    <item>
      <title>&#26399;&#24453;&#25110;&#20851;&#27880;&#20013;&#30340;Ruby on Rails&#30456;&#20851;&#22270;&#20070;</title>
      <description>&#25105;&#25226;&#25105;&#20851;&#27880;&#30340;Ruby on Rails&#30340;&#22270;&#20070;&#21015;&#22312;&#36825;&#37324;&#65292;&#20570;&#20010;&#25552;&#37266;&#12290;&lt;br /&gt;
The Rails Way (Addison-Wesley Professional Ruby Series)&lt;br /&gt;
Pro ActiveRecord: Databases with Ruby and Rails (Pro) &lt;br /&gt;
Advanced Rails Recipes: 72 New Ways to Build Stunning Rails Apps&lt;br /&gt;
Agile Testing with Ruby and Rails&lt;br /&gt;
&lt;a href="http://www.amazon.com/Professional-Ruby-Collection-Refactoring-Addison-Wesley/dp/0132417995/ref=pd_sim_b_title_14/102-8409265-4032927"&gt;Professional Ruby Collection: Mongrel, Rails Plugins, Rails Routing, Refactoring to REST, and Rubyisms&lt;/a&gt; &lt;br /&gt;
&lt;a href="http://www.amazon.com/Scaling-Rails-Building-Giant-Websites/dp/1590599322/ref=pd_sim_b_img_1/102-8409265-4032927"&gt;Scaling Rails: Building Giant Websites&lt;/a&gt;&lt;br /&gt;
&lt;a href="http://www.amazon.com/Foundations-RSpec-Behavior-Driven-Development-Rails/dp/1590599225/ref=pd_sim_b_img_6/102-8409265-4032927"&gt;Foundations of RSpec: Behavior-Driven Development with Ruby and Rails &lt;/a&gt;&lt;br /&gt;
&lt;a href="http://www.amazon.com/Advanced-Rails-Brad-Ediger/dp/0596510322/ref=pd_sim_b_title_20/102-8409265-4032927"&gt;Advanced Rails&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;</description>
      <pubDate>Fri, 09 Nov 2007 08:38:00 +0800</pubDate>
      <guid isPermaLink="false">urn:uuid:12cca733-60b4-4c5a-840b-5c55394fcbc0</guid>
      <author>Captain Zhan</author>
      <link>http://www.cslog.cn/Content/books_on_rails</link>
      <category>Ruby on Rails</category>
    </item>
    <item>
      <title>Open MDB file on Ubuntu, convert it to CSV, import it to Rails</title>
      <description>Open MDB file on Ubuntu, convert it to CSV, import it to Rails&lt;br /&gt;
MDB is a data file format used by Microsoft Office Access. To open and view MDB files on ubuntu, you can install a tools named &lt;a href="http://mdbtools.sourceforge.net/"&gt;mdbtools&lt;/a&gt; :&lt;br /&gt;
&lt;br /&gt;
sudo apt-get install libmdbtools mdbtools mdbtools-gmdb&lt;br /&gt;
&lt;br /&gt;
This will also install MDB viewer, and you can use it to open and view MDB files. It also can be used to export tables to CSV(Comma-separated_values) files.&lt;br /&gt;
&lt;br /&gt;
And here is an example importing CSV data into Rails model:&lt;br /&gt;
require &amp;lsquo;csv&amp;rsquo;&lt;br /&gt;
CSV::Reader.parse(File.open('/path/to/file', 'rb')).each do |row|&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; Production.create(:name =&amp;gt; row[1],&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; :price =&amp;gt; row[3])&lt;br /&gt;
end</description>
      <pubDate>Fri, 05 Oct 2007 16:44:00 +0800</pubDate>
      <guid isPermaLink="false">urn:uuid:73830d75-0fdb-4bc4-a6f9-606b830ba8c7</guid>
      <author>Captain Zhan</author>
      <link>http://www.cslog.cn/Content/csv</link>
      <category>&#20449;&#24687;&#22788;&#29702;</category>
      <category>Ruby on Rails</category>
    </item>
  </channel>
</rss>
