<rss version="2.0">
  <channel>
    <title>Ruby on Rails &#20013;&#25991; Wiki</title>
    <link>http://wiki.rubyonrailscn.org/rails/show/HomePage</link>
    <description>An Instiki wiki</description>
    <language>en-us</language>
    <ttl>40</ttl>
    <item>
      <title>Rails</title>
      <description>&lt;p&gt;test&lt;/p&gt;</description>
      <pubDate>Wed, 02 Jul 2008 04:24:37 Z</pubDate>
      <guid>http://wiki.rubyonrailscn.org/rails/show/Rails</guid>
      <link>http://wiki.rubyonrailscn.org/rails/show/Rails</link>
    </item>
    <item>
      <title>Rails2_0&#26032;&#29305;&#24615;_&#20026;environment_rb&#21069;&#37096;&#21152;&#36733;&#25346;&#38057;</title>
      <description>&lt;p&gt;&#22914;&#26524;&#24744;&#19968;&#30452;&#22312;&#23547;&#27714;&#30001; environment.rb &#35835;&#21462;&#21069;&#23545; Rails &#31243;&#24207;&#36827;&#34892;&#35774;&#32622;&#30340;&#26041;&#24335;&#65292;&#20170;&#22825;&#26377; &lt;a href="http://dev.rubyonrails.org/changeset/8159"&gt;&#31572;&#26696;&lt;/a&gt; &#20102;&#12290;&lt;/p&gt;


	&lt;p&gt;&#22914;&#26524;&#19968;&#20010; config/preinitializer.rb &#30340;&#25991;&#20214;&#23384;&#22312;&#65292;Rails &#23558;&#22312;&#35835;&#21462; environment.rb &#25991;&#20214;&#20043;&#21069;&#20808;&#21152;&#36733;&#36825;&#20010;&#25991;&#20214;&#12290;&#36890;&#36807;&#36825;&#20010;&#26041;&#27861;&#20351;&#24744;&#22312;&#21152;&#36733;&#25554;&#20214;&#20043;&#21069;&#21487;&#20197;&#20351;&#31243;&#24207;&#35835;&#21462; Rails &#30340;&#31867;&#20195;&#30721;&#12290;&lt;/p&gt;</description>
      <pubDate>Sun, 08 Jun 2008 05:52:28 Z</pubDate>
      <guid>http://wiki.rubyonrailscn.org/rails/show/Rails2_0%E6%96%B0%E7%89%B9%E6%80%A7_%E4%B8%BAenvironment_rb%E5%89%8D%E9%83%A8%E5%8A%A0%E8%BD%BD%E6%8C%82%E9%92%A9</guid>
      <link>http://wiki.rubyonrailscn.org/rails/show/Rails2_0%E6%96%B0%E7%89%B9%E6%80%A7_%E4%B8%BAenvironment_rb%E5%89%8D%E9%83%A8%E5%8A%A0%E8%BD%BD%E6%8C%82%E9%92%A9</link>
    </item>
    <item>
      <title>Rails2_0&#37325;&#35201;&#26356;&#26032;&#20197;&#21450;&#26032;&#29305;&#24615;</title>
      <description>&lt;p&gt;&#24863;&#35874; &lt;a href="http://yudionrails.com/2007/12/17/rails-2-0-final-released-summary-of-features"&gt;Yudi&lt;/a&gt; &#25552;&#20379;&#26412;&#31995;&#21015;&#25991;&#26723;&lt;/p&gt;


	&lt;p&gt;Rails 2.0 &#37325;&#35201;&#26356;&#26032;&#20197;&#21450;&#26032;&#29305;&#24615;&#31995;&#21015; &#26159;&#38024;&#23545; &lt;a href="http://ryandaigle.com/"&gt;Ryan Daigle&lt;/a&gt; &#30340;Rails2.0&#24635;&#32467; &#25152;&#20570;&#30340;&#20013;&#25991;&#32763;&#35793;&#12290;&#36825;&#20010;&#39033;&#30446;&#30340;&#21807;&#19968;&#30446;&#30340;&#26159;&#24076;&#26395;&#24110;&#21161;&#22823;&#23478;&#22312;Rails 2.0&#21457;&#24067; &#21518;&#20197;&#26368;&#26041;&#20415;&#30340;&#36884;&#24452;&#20102;&#35299;&#25152;&#26377;&#37325;&#22823;&#21644;&#26377;&#24847;&#20041;&#30340;&#26356;&#26032;&#12290;&lt;/p&gt;


	&lt;p&gt;&#24403;&#28982;Edge Rails&#30340;&#26356;&#26032;&#19981;&#20165;&#20165;&#26159;&#36825;&#20123;&#65292;Ryan&#20316;&#20026;Rails&#24320;&#21457;&#22242;&#38431;&#30340;&#26680;&#24515;&#19968;&#30452;&#23613;&#24515;&#23613;&#21147;&#30340;&#20026;&#22823;&#23478;&#20570;&#26368;&#22909;&#30340;&#24635;&#32467;&#12290;&#20182;&#30340; &lt;a href="http://peepcode.com/products/rails2-pdf"&gt;Peepcode Rails2.0&lt;/a&gt; &#21333;&#22312;&#32654;&#22269;&#24050;&#32463;&#21806;&#20986;&#36229;&#36807;1000&#20221;&#12290;&lt;/p&gt;


	&lt;p&gt;&#24076;&#26395;&#23545;&#23558;&#29256;&#26412;&#21319;&#32423;&#21040; Rails 2.0 &#30340;&#24320;&#21457;&#20154;&#21592;&#26377;&#25152;&#24110;&#21161;&#12290;&lt;br /&gt;&#19979;&#38754;&#26159;&#31995;&#21015;&#30340;&#21015;&#34920;&#65306;&#65288;&#25353;&#29031;&#26102;&#38388;&#25490;&#24207;&#65289;&lt;/p&gt;


	&lt;ul&gt;
	&lt;li&gt;&lt;a class="existingWikiWord" href="http://wiki.rubyonrailscn.org/rails/show/Rails2_0%E6%96%B0%E7%89%B9%E6%80%A7_ActionMailer%E8%AE%BE%E7%BD%AE%E7%9A%84%E8%B0%83%E6%95%B4"&gt;Rails2_0&#26032;&#29305;&#24615;_ActionMailer&#35774;&#32622;&#30340;&#35843;&#25972;&lt;/a&gt;&lt;/li&gt;
		&lt;li&gt;&lt;a class="existingWikiWord" href="http://wiki.rubyonrailscn.org/rails/show/Rails2_0%E6%96%B0%E7%89%B9%E6%80%A7_1%E6%9C%88%E4%BB%BD%E8%87%AA%E7%8E%B0%E5%9C%A8%E8%B5%B7%E4%B8%8D%E5%86%8D%E5%87%BA%E9%94%99"&gt;Rails2_0&#26032;&#29305;&#24615;_1&#26376;&#20221;&#33258;&#29616;&#22312;&#36215;&#19981;&#20877;&#20986;&#38169;&lt;/a&gt;&lt;/li&gt;
		&lt;li&gt;&lt;a class="existingWikiWord" href="http://wiki.rubyonrailscn.org/rails/show/Rails2_0%E6%96%B0%E7%89%B9%E6%80%A7_%E6%BA%90%E4%BB%A3%E7%A0%81%E6%B3%A8%E9%87%8A"&gt;Rails2_0&#26032;&#29305;&#24615;_&#28304;&#20195;&#30721;&#27880;&#37322;&lt;/a&gt;&lt;/li&gt;
		&lt;li&gt;&lt;a class="existingWikiWord" href="http://wiki.rubyonrailscn.org/rails/show/Rails2_0%E6%96%B0%E7%89%B9%E6%80%A7_%E5%A6%82%E4%BD%95%E6%9B%B4%E5%BF%AB%E6%8D%B7%E7%9A%84%E8%B0%83%E7%94%A8helper"&gt;Rails2_0&#26032;&#29305;&#24615;_&#22914;&#20309;&#26356;&#24555;&#25463;&#30340;&#35843;&#29992;helper&lt;/a&gt;&lt;/li&gt;
		&lt;li&gt;&lt;a class="existingWikiWord" href="http://wiki.rubyonrailscn.org/rails/show/Rails2_0%E6%96%B0%E7%89%B9%E6%80%A7_%E4%B8%8D%E5%86%8D%E5%B0%86%E4%B9%B1%E4%B8%83%E5%85%AB%E7%B3%9F%E7%9A%84%E4%B8%9C%E8%A5%BF%E4%B8%A2%E8%BF%9B%E6%82%A8%E7%9A%84Environment%E6%96%87%E4%BB%B6"&gt;Rails2_0&#26032;&#29305;&#24615;_&#19981;&#20877;&#23558;&#20081;&#19971;&#20843;&#31967;&#30340;&#19996;&#35199;&#20002;&#36827;&#24744;&#30340;Environment&#25991;&#20214;&lt;/a&gt;&lt;/li&gt;
		&lt;li&gt;&lt;a class="existingWikiWord" href="http://wiki.rubyonrailscn.org/rails/show/Rails2_0%E6%96%B0%E7%89%B9%E6%80%A7_Rails%E4%B8%BA%E6%88%91%E4%BB%AC%E6%8F%90%E4%BE%9BActiverecord%E7%BC%93%E5%AD%98"&gt;Rails2_0&#26032;&#29305;&#24615;_Rails&#20026;&#25105;&#20204;&#25552;&#20379;Activerecord&#32531;&#23384;&lt;/a&gt;&lt;/li&gt;
		&lt;li&gt;&lt;a class="existingWikiWord" href="http://wiki.rubyonrailscn.org/rails/show/Rails2_0%E6%96%B0%E7%89%B9%E6%80%A7_%E8%AE%B0%E5%BD%95%E5%9C%A8Cookie%E4%B8%8A%E7%9A%84session%E6%88%90%E4%B8%BA%E9%BB%98%E8%AE%A4"&gt;Rails2_0&#26032;&#29305;&#24615;_&#35760;&#24405;&#22312;Cookie&#19978;&#30340;session&#25104;&#20026;&#40664;&#35748;&lt;/a&gt;&lt;/li&gt;
		&lt;li&gt;&lt;a class="existingWikiWord" href="http://wiki.rubyonrailscn.org/rails/show/Rails2_0%E6%96%B0%E7%89%B9%E6%80%A7_%E6%89%A9%E5%B1%95%E7%BC%93%E5%AD%98%E5%BA%94%E7%94%A8%E7%9A%84%E8%A7%84%E6%A8%A1"&gt;Rails2_0&#26032;&#29305;&#24615;_&#25193;&#23637;&#32531;&#23384;&#24212;&#29992;&#30340;&#35268;&#27169;&lt;/a&gt;&lt;/li&gt;
		&lt;li&gt;&lt;a class="existingWikiWord" href="http://wiki.rubyonrailscn.org/rails/show/Rails2_0%E6%96%B0%E7%89%B9%E6%80%A7_rhtml%E4%B8%8Erxml%E6%AD%A3%E6%85%A2%E6%85%A2%E7%9A%84%E6%AD%BB%E5%8E%BB"&gt;Rails2_0&#26032;&#29305;&#24615;_rhtml&#19982;rxml&#27491;&#24930;&#24930;&#30340;&#27515;&#21435;&lt;/a&gt;&lt;/li&gt;
		&lt;li&gt;&lt;a class="existingWikiWord" href="http://wiki.rubyonrailscn.org/rails/show/Rails2_0%E6%96%B0%E7%89%B9%E6%80%A7_mime_type%E4%B8%AD%E7%AE%80%E4%BE%BF%E7%9A%84%E6%96%B9%E6%B3%95"&gt;Rails2_0&#26032;&#29305;&#24615;_mime_type&#20013;&#31616;&#20415;&#30340;&#26041;&#27861;&lt;/a&gt;&lt;/li&gt;
		&lt;li&gt;&lt;a class="existingWikiWord" href="http://wiki.rubyonrailscn.org/rails/show/Rails2_0%E6%96%B0%E7%89%B9%E6%80%A7_%E7%8B%AC%E7%89%B9%E7%9A%84Activerecord%E7%BC%93%E5%AD%98"&gt;Rails2_0&#26032;&#29305;&#24615;_&#29420;&#29305;&#30340;Activerecord&#32531;&#23384;&lt;/a&gt;&lt;/li&gt;
		&lt;li&gt;&lt;a class="existingWikiWord" href="http://wiki.rubyonrailscn.org/rails/show/Rails2_0%E6%96%B0%E7%89%B9%E6%80%A7_%E5%9C%A8RESTful%E8%B7%AF%E7%94%B1%E4%B8%AD%E8%AE%BE%E5%AE%9A%E6%96%B0%E7%9A%84%E5%AE%9A%E7%95%8C%E7%AC%A6%E5%8F%B7"&gt;Rails2_0&#26032;&#29305;&#24615;_&#22312;RESTful&#36335;&#30001;&#20013;&#35774;&#23450;&#26032;&#30340;&#23450;&#30028;&#31526;&#21495;&lt;/a&gt;&lt;/li&gt;
		&lt;li&gt;&lt;a class="existingWikiWord" href="http://wiki.rubyonrailscn.org/rails/show/Rails2_0%E6%96%B0%E7%89%B9%E6%80%A7_%E5%AF%B9%E8%B1%A1%E7%9A%84%E8%BF%81%E7%A7%BB"&gt;Rails2_0&#26032;&#29305;&#24615;_&#23545;&#35937;&#30340;&#36801;&#31227;&lt;/a&gt;&lt;/li&gt;
		&lt;li&gt;&lt;a class="existingWikiWord" href="http://wiki.rubyonrailscn.org/rails/show/Rails2_0%E6%96%B0%E7%89%B9%E6%80%A7_Activesource%E4%B8%AD%E7%9A%84Custom_method"&gt;Rails2_0&#26032;&#29305;&#24615;_Activesource&#20013;&#30340;Custom_method&lt;/a&gt;&lt;/li&gt;
		&lt;li&gt;&lt;a class="existingWikiWord" href="http://wiki.rubyonrailscn.org/rails/show/Rails2_0%E6%96%B0%E7%89%B9%E6%80%A7_render%E7%9A%84%E4%BD%BF%E7%94%A8%E6%80%A7%E6%8F%90%E5%8D%87%E4%BA%86%E7%99%BE%E5%88%86%E4%B9%8B%E4%B8%83%E5%8D%81"&gt;Rails2_0&#26032;&#29305;&#24615;_render&#30340;&#20351;&#29992;&#24615;&#25552;&#21319;&#20102;&#30334;&#20998;&#20043;&#19971;&#21313;&lt;/a&gt;&lt;/li&gt;
		&lt;li&gt;&lt;a class="existingWikiWord" href="http://wiki.rubyonrailscn.org/rails/show/Rails2_0%E6%96%B0%E7%89%B9%E6%80%A7_%E6%9B%B4%E5%8A%A0%E7%81%B5%E6%B4%BB%E7%9A%84to_xml"&gt;Rails2_0&#26032;&#29305;&#24615;_&#26356;&#21152;&#28789;&#27963;&#30340;to_xml&lt;/a&gt;&lt;/li&gt;
		&lt;li&gt;&lt;a class="existingWikiWord" href="http://wiki.rubyonrailscn.org/rails/show/Rails2_0%E6%96%B0%E7%89%B9%E6%80%A7_%E6%96%B0%E7%9A%84rake%E6%95%B0%E6%8D%AE%E5%BA%93%E5%91%BD%E4%BB%A4"&gt;Rails2_0&#26032;&#29305;&#24615;_&#26032;&#30340;rake&#25968;&#25454;&#24211;&#21629;&#20196;&lt;/a&gt;&lt;/li&gt;
		&lt;li&gt;&lt;a class="existingWikiWord" href="http://wiki.rubyonrailscn.org/rails/show/Rails2_0%E6%96%B0%E7%89%B9%E6%80%A7_%E4%B8%BA%E6%82%A8%E6%8E%A8%E4%BB%8Bvalidates_numericality_of"&gt;Rails2_0&#26032;&#29305;&#24615;_&#20026;&#24744;&#25512;&#20171;validates_numericality_of&lt;/a&gt;&lt;/li&gt;
		&lt;li&gt;&lt;a class="existingWikiWord" href="http://wiki.rubyonrailscn.org/rails/show/Rails2_0%E6%96%B0%E7%89%B9%E6%80%A7_Activeresource%E4%B8%AD%E7%9A%84finder%E5%8D%87%E7%BA%A7"&gt;Rails2_0&#26032;&#29305;&#24615;_Activeresource&#20013;&#30340;finder&#21319;&#32423;&lt;/a&gt;&lt;/li&gt;
		&lt;li&gt;&lt;a class="existingWikiWord" href="http://wiki.rubyonrailscn.org/rails/show/Rails2_0%E6%96%B0%E7%89%B9%E6%80%A7_has_many%E4%B8%8Ehas_one%E7%9A%84RESTful%E8%B7%AF%E7%94%B1"&gt;Rails2_0&#26032;&#29305;&#24615;_has_many&#19982;has_one&#30340;RESTful&#36335;&#30001;&lt;/a&gt;&lt;/li&gt;
		&lt;li&gt;&lt;a class="existingWikiWord" href="http://wiki.rubyonrailscn.org/rails/show/Rails2_0%E6%96%B0%E7%89%B9%E6%80%A7_%E5%B8%A6%E5%9B%9E%E6%80%A7%E6%84%9F%E7%9A%84%E4%B8%80%E9%9D%A2"&gt;Rails2_0&#26032;&#29305;&#24615;_&#24102;&#22238;&#24615;&#24863;&#30340;&#19968;&#38754;&lt;/a&gt;&lt;/li&gt;
		&lt;li&gt;&lt;a class="existingWikiWord" href="http://wiki.rubyonrailscn.org/rails/show/Rails2_0%E6%96%B0%E7%89%B9%E6%80%A7_Fixtures%E5%A0%86%E7%A7%AF"&gt;Rails2_0&#26032;&#29305;&#24615;_Fixtures&#22534;&#31215;&lt;/a&gt;&lt;/li&gt;
		&lt;li&gt;&lt;a class="existingWikiWord" href="http://wiki.rubyonrailscn.org/rails/show/Rails2_0%E6%96%B0%E7%89%B9%E6%80%A7_%E4%BD%BF%E7%94%A8rake%E6%9F%A5%E7%9C%8B%E8%B7%AF%E7%94%B1%E5%88%97%E8%A1%A8"&gt;Rails2_0&#26032;&#29305;&#24615;_&#20351;&#29992;rake&#26597;&#30475;&#36335;&#30001;&#21015;&#34920;&lt;/a&gt;&lt;/li&gt;
		&lt;li&gt;&lt;a class="existingWikiWord" href="http://wiki.rubyonrailscn.org/rails/show/Rails2_0%E6%96%B0%E7%89%B9%E6%80%A7_Partial%E4%B9%9F%E6%9C%89%E4%BA%86Layout"&gt;Rails2_0&#26032;&#29305;&#24615;_Partial&#20063;&#26377;&#20102;Layout&lt;/a&gt;&lt;/li&gt;
		&lt;li&gt;&lt;a class="existingWikiWord" href="http://wiki.rubyonrailscn.org/rails/show/Rails2_0%E6%96%B0%E7%89%B9%E6%80%A7_%E6%96%B0%E7%9A%84Rails%E6%95%B0%E6%8D%AE%E5%BA%93%E6%8E%A5%E5%8F%A3"&gt;Rails2_0&#26032;&#29305;&#24615;_&#26032;&#30340;Rails&#25968;&#25454;&#24211;&#25509;&#21475;&lt;/a&gt;&lt;/li&gt;
		&lt;li&gt;&lt;a class="existingWikiWord" href="http://wiki.rubyonrailscn.org/rails/show/Rails2_0%E6%96%B0%E7%89%B9%E6%80%A7_Rails%E6%97%A5%E5%BF%97%E8%AE%B0%E5%BD%95%E5%8F%98%E5%88%A9%E7%B4%A2%E7%82%B9%E5%84%BF%E4%BA%86"&gt;Rails2_0&#26032;&#29305;&#24615;_Rails&#26085;&#24535;&#35760;&#24405;&#21464;&#21033;&#32034;&#28857;&#20799;&#20102;&lt;/a&gt;&lt;/li&gt;
		&lt;li&gt;&lt;a class="existingWikiWord" href="http://wiki.rubyonrailscn.org/rails/show/Rails2_0%E6%96%B0%E7%89%B9%E6%80%A7_%E7%BD%91%E7%AB%99%E7%AD%BE%E5%90%8D%E9%98%B2%E6%8A%A4%E7%9A%84%E6%94%B9%E8%BF%9B"&gt;Rails2_0&#26032;&#29305;&#24615;_&#32593;&#31449;&#31614;&#21517;&#38450;&#25252;&#30340;&#25913;&#36827;&lt;/a&gt;&lt;/li&gt;
		&lt;li&gt;&lt;a class="existingWikiWord" href="http://wiki.rubyonrailscn.org/rails/show/Rails2_0%E6%96%B0%E7%89%B9%E6%80%A7_ExceptionHandling%E7%9A%84%E5%8D%87%E7%BA%A7"&gt;Rails2_0&#26032;&#29305;&#24615;_ExceptionHandling&#30340;&#21319;&#32423;&lt;/a&gt;&lt;/li&gt;
		&lt;li&gt;&lt;a class="existingWikiWord" href="http://wiki.rubyonrailscn.org/rails/show/Rails2_0%E6%96%B0%E7%89%B9%E6%80%A7_%E8%AE%BE%E7%BD%AE%E6%8F%92%E4%BB%B6%E5%8A%A0%E8%BD%BD%E9%A1%BA%E5%BA%8F"&gt;Rails2_0&#26032;&#29305;&#24615;_&#35774;&#32622;&#25554;&#20214;&#21152;&#36733;&#39034;&#24207;&lt;/a&gt;&lt;/li&gt;
		&lt;li&gt;&lt;a class="existingWikiWord" href="http://wiki.rubyonrailscn.org/rails/show/Rails2_0%E6%96%B0%E7%89%B9%E6%80%A7_RailsValidation%E7%8E%B0%E5%9C%A8%E5%85%81%E8%AE%B8_%E4%B8%BA%E7%A9%BA"&gt;Rails2_0&#26032;&#29305;&#24615;_RailsValidation&#29616;&#22312;&#20801;&#35768;_&#20026;&#31354;&lt;/a&gt;&lt;/li&gt;
		&lt;li&gt;&lt;a class="existingWikiWord" href="http://wiki.rubyonrailscn.org/rails/show/Rails2_0%E6%96%B0%E7%89%B9%E6%80%A7_Fixtures%E5%8F%98%E5%BE%97%E7%AE%80%E5%8D%95%E4%BA%86"&gt;Rails2_0&#26032;&#29305;&#24615;_Fixtures&#21464;&#24471;&#31616;&#21333;&#20102;&lt;/a&gt;&lt;/li&gt;
		&lt;li&gt;&lt;a class="existingWikiWord" href="http://wiki.rubyonrailscn.org/rails/show/Rails2_0%E6%96%B0%E7%89%B9%E6%80%A7_filters%E7%9A%84%E6%9B%B4%E6%96%B0"&gt;Rails2_0&#26032;&#29305;&#24615;_filters&#30340;&#26356;&#26032;&lt;/a&gt;&lt;/li&gt;
		&lt;li&gt;&lt;a class="existingWikiWord" href="http://wiki.rubyonrailscn.org/rails/show/Rails2_0%E6%96%B0%E7%89%B9%E6%80%A7_%E4%B8%BAenvironment_rb%E5%89%8D%E9%83%A8%E5%8A%A0%E8%BD%BD%E6%8C%82%E9%92%A9"&gt;Rails2_0&#26032;&#29305;&#24615;_&#20026;environment_rb&#21069;&#37096;&#21152;&#36733;&#25346;&#38057;&lt;/a&gt;&lt;/li&gt;
	&lt;/ul&gt;


	&lt;p&gt;&#26356;&#22810; Rails2 &#30456;&#20851;&lt;/p&gt;


	&lt;ul&gt;
	&lt;li&gt;&lt;a href="http://robbin.javaeye.com/blog/147397"&gt;&#36825;&#37324;&#26159; robbin &#30340;Rails2 &#24635;&#32467;&#65292;&#38750;&#24120;&#22909;&#12290;&lt;/a&gt;&lt;/li&gt;
	&lt;/ul&gt;</description>
      <pubDate>Sun, 08 Jun 2008 05:51:49 Z</pubDate>
      <guid>http://wiki.rubyonrailscn.org/rails/show/Rails2_0%E9%87%8D%E8%A6%81%E6%9B%B4%E6%96%B0%E4%BB%A5%E5%8F%8A%E6%96%B0%E7%89%B9%E6%80%A7</guid>
      <link>http://wiki.rubyonrailscn.org/rails/show/Rails2_0%E9%87%8D%E8%A6%81%E6%9B%B4%E6%96%B0%E4%BB%A5%E5%8F%8A%E6%96%B0%E7%89%B9%E6%80%A7</link>
    </item>
    <item>
      <title>Rails2_0&#26032;&#29305;&#24615;_filters&#30340;&#26356;&#26032;</title>
      <description>&lt;p&gt;Controller &#37324;&#21018;&#21018; &lt;a href="http://dev.rubyonrails.org/changeset/7984"&gt;&#34987;&#26356;&#26032;&lt;/a&gt; &#30340; &lt;a href="http://api.rubyonrails.com/classes/ActionController/Filters/ClassMethods.html"&gt;filters &#21151;&#33021;&lt;/a&gt; &#20063;&#35768;&#20250;&#20026;&#24744;&#29616;&#23384;&#30340;&#20195;&#30721;&#24102;&#26469;&#19968;&#28857;&#21464;&#21160;&#12290; &#29616;&#22312;&#65292;false &#36755;&#20986;&#23558;&#19981;&#20877;&#20572;&#27490;&#24403;&#21069;&#36816;&#34892;&#30340;&#36827;&#31243;&#65292;&#30495;&#27491;&#20572;&#27490;&#36827;&#31243;&#30340;&#20027;&#35282;&#25442;&#20026;&#20102; rendering &#25110; redirecting&#12290;&lt;/p&gt;


	&lt;p&gt;&#22914;&#26524;&#24744;&#28145;&#20837;&#30340;&#21435;&#29702;&#35299;&#65292;&#36890;&#36807;&#22312; filter &#37324;&#30340; render/redirect &#26469;&#20572;&#27490;&#19968;&#20010;&#36827;&#31243;&#26356;&#21152;&#31526;&#21512;&#36923;&#36753;&#65292;&#22240;&#20026;&#23427;&#20204;&#22312;&#27599;&#20010;&#36827;&#31243;&#37324;&#21482;&#33021;&#34987;&#20351;&#29992;&#19968;&#27425;&#65292;&#36825;&#26679;&#26356;&#21152;&#33021;&#22815;&#25351;&#26126;&#36825;&#20010;&#36827;&#31243;&#23558;&#19981;&#20877;&#38656;&#35201;&#35843;&#29992;&#20854;&#20182;&#36164;&#28304;&#12290;&lt;/p&gt;


	&lt;p&gt;&#37027;&#20040;&#20043;&#21069;&#65292;&#24744;&#20063;&#35768;&#20250;&#25317;&#26377;&#19968;&#20010;&#31867;&#20284;&#19979;&#38754;&#30340; filter &#65306;&lt;/p&gt;


&lt;pre&gt;
def must_be_logged_in
  if(not user_logged_in?)
    redirect_to login_url
    return false
  end
end
&lt;/pre&gt;

	&lt;p&gt;&#24744;&#29616;&#22312;&#21487;&#20197;&#36890;&#36807; rendering &#25110; redirecting &#26469;&#21462;&#20195;&#36755;&#20986; false&#65306;&lt;/p&gt;


&lt;pre&gt;
def must_be_logged_in
  redirect_to login_url if not user_logged_in?
end
&lt;/pre&gt;

	&lt;p&gt;&#22836;&#19968;&#27425;&#30475;&#21040;&#30340;&#26102;&#20505;&#25105;&#20197;&#20026;&#36825;&#20010;&#26041;&#27861;&#21487;&#33021;&#20250;&#25443;&#20081;&#25105;&#20204;&#21407;&#20808;&#35774;&#32622;&#30340; filter&#65292;&#20294;&#26159;&#22312;&#23545;&#33258;&#24049;&#30340;&#20195;&#30721;&#36827;&#34892;&#24635;&#32467;&#21518;&#25105;&#21457;&#29616;&#20219;&#20309;&#26102;&#20505;&#36755;&#20986; false &#30340;&#26102;&#20505;&#26089;&#24050;&#32463;&#36827;&#34892;&#20102; render &#25110;&#32773; redirect&#12290;&#19981;&#36807;&#36824;&#19981;&#22826;&#30830;&#23450;&#27599;&#20010;&#20154;&#37117;&#26159;&#22914;&#27492; &#8230;&lt;/p&gt;


	&lt;p&gt;&#24863;&#35874; &lt;a href="http://yudionrails.com/2007/12/17/rails-2-0-final-released-summary-of-features"&gt;Yudi&lt;/a&gt; &#25552;&#20379;&#26412;&#31995;&#21015;&#25991;&#26723;&lt;/p&gt;


	&lt;p&gt;&#21407;&#25991;&#20316;&#32773;&#26159; Ryan Daigle, &#35831;&#35775;&#38382;&lt;a href="http://ryandaigle.com"&gt;&#20182;&#30340;&#21338;&#23458;&lt;/a&gt;&lt;/p&gt;</description>
      <pubDate>Sat, 07 Jun 2008 06:03:09 Z</pubDate>
      <guid>http://wiki.rubyonrailscn.org/rails/show/Rails2_0%E6%96%B0%E7%89%B9%E6%80%A7_filters%E7%9A%84%E6%9B%B4%E6%96%B0</guid>
      <link>http://wiki.rubyonrailscn.org/rails/show/Rails2_0%E6%96%B0%E7%89%B9%E6%80%A7_filters%E7%9A%84%E6%9B%B4%E6%96%B0</link>
    </item>
    <item>
      <title>Rails2_0&#26032;&#29305;&#24615;_Fixtures&#21464;&#24471;&#31616;&#21333;&#20102;</title>
      <description>&lt;p&gt;&#29616;&#22312;&#26377;&lt;a href="http://code.google.com/p/fixture-scenarios/"&gt;&#20247;&#22810;&lt;/a&gt; &#30340; &lt;a href="http://www.caboo.se/articles/2006/11/2/fixture-hack-gets-pluginized-caboose-plugin-repository-lunches"&gt;fixture&#25554;&#20214;&lt;/a&gt; &#23581;&#35797;&#30528;&#20351;&#24744;&#30340; test fixtures &#21464;&#24471;&#26356;&#21152;&#31616;&#21333;&#12290;&#32780;&#22823;&#22810;&#25968;&#25554;&#20214;&#37117;&#36890;&#36807;&#19981;&#21516;&#30340;&#26041;&#24335;&#36798;&#21040;&#20102;&#30446;&#30340;&#12290;&lt;/p&gt;


	&lt;p&gt;&#23427;&#20204;&#20043;&#38388;&#26368;&#22909;&#26368;&#29305;&#21035;&#30340; fixture &#25554;&#20214; &lt;a href="http://svn.geeksomnia.com/rathole/trunk/README"&gt;Rathole&lt;/a&gt; &#8220;&#25972;&#21512;&#36827;&#20102; rails &#20043;&#20013;&#8221;&lt;a href="http://dev.rubyonrails.org/changeset/8036"&gt;http://dev.rubyonrails.org/changeset/8036&lt;/a&gt; &#12290;&#35753;&#25105;&#20204;&#26469;&#24635;&#32467;&#19968;&#19979;&#23427;&#30340;&#21151;&#33021;&#65292;&#20197;&#20415;&#24744;&#26469;&#20351;&#29992;&#65306;&lt;/p&gt;


	&lt;p&gt;&#35753;&#25105;&#20204;&#20026;&#31034;&#20363;&#24314;&#31435;&#19979;&#38754;&#30340; model&#65306;&lt;/p&gt;


&lt;pre&gt;
class Company &amp;lt; ActiveRecord::Base; has_many :employees; end
class Employee &amp;lt; ActiveRecord::Base; belongs_to :company end
&lt;/pre&gt;

	&lt;p&gt;&#19978;&#38754;&#25152;&#31034;&#30340;&#26159;&#19968;&#20010;&#20844;&#21496;&#21644;&#23427;&#30340;&#21592;&#24037;&#20043;&#38388;&#31616;&#21333;&#30340; &#19968;&#23545;&#22810;&#20851;&#31995;&#12290;&#20294;&#26159;&#24403;&#25105;&#20204;&#35774;&#32622; fixtures &#30340;&#26102;&#20505;&#65292;&#24456;&#22810;&#19981;&#37325;&#35201;&#30340;&#20803;&#32032;&#20351;&#24471;&#25105;&#20204;&#19981;&#24471;&#19981;&#21435;&#20146;&#33258;&#35774;&#23450;&#22788;&#20110;&#28151;&#20081;&#30340; id&#12290;&#32780;&#19988;&#36825;&#26679;&#30340;&#38382;&#39064;&#30001;&#20110;&#25968;&#25454;&#37327;&#30340;&#22686;&#38271;&#21464;&#24471;&#36234;&#26469;&#36234;&#20005;&#37325;&#12290;&lt;br /&gt;companies.yml&lt;/p&gt;


&lt;pre&gt;
yfactorial:
  id: 1
  name: yFactorial, LLC
  created_at: &amp;lt;%= Time.now %&amp;gt;
  updated_at: &amp;lt;%= Time.now %&amp;gt;
&lt;/pre&gt;

	&lt;p&gt;employees.yml&lt;/p&gt;


&lt;pre&gt;
ryan:
  id: 1
  name: Ryan Daigle
  company_id: 1
  created_at: &amp;lt;%= Time.now %&amp;gt;
  updated_at: &amp;lt;%= Time.now %&amp;gt;
&lt;/pre&gt;

	&lt;p&gt;&#36890;&#36807; Rathole &#30340;&#29305;&#24615;&#65292;&#24744;&#19981;&#24517;&#20877;&#20146;&#33258;&#35299;&#24320;&#30456;&#20114;&#20132;&#32544;&#24341;&#29992;&#30528;&#30340; id, &#20063;&#19981;&#24517;&#35774;&#32622; auto-magic date &#21015;&#30340;&#20540;&#12290;&#35831;&#27880;&#24847;&#24403;&#24744;&#30340; fixture &#25104;&#29087;&#21518;&#20250;&#21464;&#25104;&#20160;&#20040;&#65306;&lt;br /&gt;companies.yml&lt;/p&gt;


&lt;pre&gt;
yfactorial:
  name: yFactorial, LLC
&lt;/pre&gt;

	&lt;p&gt;employees.yml&lt;/p&gt;


&lt;pre&gt;    
ryan:
  name: Ryan Daigle
  company: yfactorial
&lt;/pre&gt;

	&lt;p&gt;&#35831;&#29305;&#21035;&#35760;&#19979;&#20197;&#19979;&#25552;&#21040;&#30340;&#20004;&#32452; fixtrue &#20043;&#38388;&#30340;&#19981;&#21516;&#65306;&lt;/p&gt;


	&lt;ul&gt;
	&lt;li&gt;&#24744;&#19981;&#24517;&#20026;&#27599;&#26465;&#35760;&#24405;&#35774;&#32622; id&#12290;&#36825;&#20010;&#36827;&#31243;&#34987;&#33258;&#21160;&#21270;&#20197;&#21518;&#20250;&#20026;&#35760;&#24405;&#24418;&#25104;&#19968;&#32452;hash&#25968;&#32452; &#65288;&#20110;&#26159;&#30001; &#8220;yFactorial&#8221; &#24418;&#25104;&#30340;integer hash&#23558;&#34987;&#20316;&#20026;&#35760;&#24405;&#30340; id&#65289;&lt;/li&gt;
		&lt;li&gt;&#19981;&#24517;&#20877;&#35774;&#32622; auto-magic &#26085;&#26399;&#30340;&#20540;&#20102;&#12290;&#19968;&#20999; created_xx &#21644; updated_xx &#21306;&#22495;&#23558;&#33258;&#21160;&#30001; Time.now &#22635;&#34917;&#12290;&lt;/li&gt;
		&lt;li&gt;&#24403;&#24341;&#29992;&#20854;&#20182;&#35760;&#24405;&#30340;id&#26102;&#65288;&#21363; employees.company_id&#65289;&#65292;&#24744;&#21482;&#38656;&#35201;&#36755;&#20837; fixture &#21517;&#31216;&#65292;&#31995;&#32479;&#20250;&#20351;&#29992;&#8220;&#27987;&#32553;&#8221;&#21518;&#30340;&#25968;&#25454;&#20316;&#20026;id&#12290;&#36825;&#20010;&#26041;&#27861;&#20351;&#24471;&#25105;&#33021;&#22815;&#23558; company_id: employees.yml &#20013;&#30340;&#19968;&#34892;&#25968;&#25454;&#26356;&#25913;&#20026; yfactorial&#12290;&lt;/li&gt;
	&lt;/ul&gt;


	&lt;p&gt;&#35760;&#24405;&#65306;&#30001;&#20110;&#27599;&#19968;&#26465;&#35760;&#24405;&#30340;&#20027;&#38190;&#37117;&#32463;&#36807;&#20102;&#35745;&#31639;&#65288;&#24418;&#25104; fixture &#21517;&#31216;&#30340;&#25968;&#32452;&#65289;&#65292;fixture&#19981;&#38656;&#35201;&#25552;&#21069;&#30693;&#36947;&#20854;&#20027;&#38190;&#20540;&#20197;&#34987;&#35835;&#21462;&#12290;&#22914;&#27492;&#20415;&#28040;&#38500;&#20102;&#24456;&#22810;&#36882;&#24402;&#24335;&#30340;&#38468;&#23646;&#20851;&#31995;&#65292;&#20197;&#21450;&#21487;&#33021;&#23481;&#26131;&#24418;&#25104;&#30340;&#25968;&#25454;&#25490;&#21015;&#38382;&#39064;&#12290;&lt;/p&gt;


	&lt;p&gt;&#28982;&#32780;&#65292;&#22312;&#24744;&#36890;&#36807; join table &#26469;&#31649;&#29702;&#22797;&#26434;&#30340; has_and_belongs_to_many &#30340;&#20851;&#31995;&#32593;&#26102;&#65292;&#22806;&#38190;&#20540; &#65288;Foreign key&#65289;&#30340;&#32852;&#31995;&#20063;&#24471;&#21040;&#20102;&#29305;&#21035;&#30340;&#20248;&#21270;&#12290;&#37027;&#20040;&#25105;&#20204;&#20551;&#35774;&#19968;&#20010; company &#19982; industry_associations &#20043;&#38388;&#23384;&#22312; has_and_belongs_to_many &#30340;&#20851;&#31995;&#65306;&lt;/p&gt;


&lt;pre&gt;
class Company &amp;lt; ActiveRecord::Base
  has_and_belongs_to_many :industry_associations,
                          :join_table =&amp;gt; 'company_industry_associations'
end
class IndustryAssociation &amp;lt; ActiveRecord::Base
  has_and_belongs_to_many :companies,
                          :join_table =&amp;gt; 'company_industry_associations'
end
&lt;/pre&gt;

	&lt;p&gt;&#29616;&#22312;&#25105;&#20204;&#19981;&#24517;&#20877;&#25776;&#20889;&#25105;&#20204;&#33258;&#24049;&#30340; company_industry_associations.yml fixture &#25991;&#20214;&#65292;&#32780;&#26159;&#30452;&#25509;&#22312; companies.yml &#25991;&#20214;&#20013;&#25351;&#26126;&#25152;&#23646; industry_associations &#30340;&#22806;&#38190;&#65306;&lt;br /&gt;companies.yml&lt;/p&gt;


&lt;pre&gt;
yfactorial:
  name: yFactorial, LLC
  industry_associations: ruby, webservices
&lt;/pre&gt;

	&lt;p&gt;&#20551;&#35774;&#25105;&#20204;&#25317;&#26377;&#19968;&#20010;&#35760;&#24405;&#20102; ruby &#21644; webservices &#30340; industry_associations.yml fixture &#25991;&#20214;&#65292;&#31995;&#32479;&#23558;&#33258;&#21160;&#20026;&#24744;&#24314;&#31435; habtm1 &#30340; join table&#12290;&lt;/p&gt;


	&lt;p&gt;&#36825;&#23545;&#20320;&#20204; fixture &#29992;&#25143;&#20204;&#65288;&#24403;&#28982;&#25105;&#20063;&#26159;&#20854;&#20013;&#20043;&#19968;&#65289;&#26469;&#35828;&#30495;&#26159;&#22825;&#22823;&#30340;&#22909;&#22788;&#12290;&#20063;&#35768;&#36824;&#27809;&#23581;&#35797;&#36807; fixture &#30340;&#26379;&#21451;&#20204;&#20877;&#26469;&#30475;&#30475;&#65311;&#30495;&#24471;&#26159;&#38750;&#24120;&#24378;&#22823;&#30340;&#21151;&#33021; &#8211; &#24863;&#35874; &lt;a href="http://geeksomnia.com/"&gt;John&lt;/a&gt; &#20026;&#27492;&#25152;&#20570;&#30340;&#36129;&#29486;&#65281;&lt;/p&gt;


	&lt;p&gt;&#35831;&#30475;&#30475;&#24213;&#37096;&#20851;&#20110;&#25554;&#20214;&#30340; &lt;a href="http://svn.geeksomnia.com/rathole/trunk/README"&gt;README&#25991;&#26723;&lt;/a&gt; &#65292;&#19978;&#38754;&#35814;&#32454;&#20171;&#32461;&#20102;&#22914;&#20309;&#35774;&#23450;&#40664;&#35748;&#20540;&#65292;&#20197;&#21450;&#22914;&#20309;&#33719;&#21462;&#20854;&#20182; fixture &#30340;&#20027;&#38190;&#20540;&lt;/p&gt;


	&lt;h2&gt;&#27880;&#37322;&lt;/h2&gt;


	&lt;ol&gt;
	&lt;li&gt;&#21363; &lt;span class="newWikiWord"&gt;has_and_belongs_to_many&lt;a href="http://wiki.rubyonrailscn.org/rails/new/has_and_belongs_to_many"&gt;?&lt;/a&gt;&lt;/span&gt; &#30340;&#32553;&#20889;&#12290;&lt;/li&gt;
	&lt;/ol&gt;</description>
      <pubDate>Sat, 07 Jun 2008 06:01:31 Z</pubDate>
      <guid>http://wiki.rubyonrailscn.org/rails/show/Rails2_0%E6%96%B0%E7%89%B9%E6%80%A7_Fixtures%E5%8F%98%E5%BE%97%E7%AE%80%E5%8D%95%E4%BA%86</guid>
      <link>http://wiki.rubyonrailscn.org/rails/show/Rails2_0%E6%96%B0%E7%89%B9%E6%80%A7_Fixtures%E5%8F%98%E5%BE%97%E7%AE%80%E5%8D%95%E4%BA%86</link>
    </item>
    <item>
      <title>Rails2_0&#26032;&#29305;&#24615;_Rails Validation&#29616;&#22312;&#20801;&#35768;_&#20026;&#31354;</title>
      <description>&lt;p&gt;&#36825;&#26159;&#19968;&#20010;&#24456;&#23567;&#30340;&#26356;&#26032;&#65292;&#20294;&#24456;&#20540;&#24471;&#19968;&#25552;&#12290;&#31181;&#31867;&#32321;&#22810;&#30340; activerecord validation method &#29616;&#22312;&#25509;&#21463; :allow_blank &#36873;&#39033;&#12290;&#36890;&#36807; :allow_blank &#24403;&#20540;&#20026; nil &#25110;&#31354;&#30333;&#30340; string &#26102;&#65292;validation &#20063;&#20250;&#36890;&#36807;&#12290;&lt;/p&gt;


&lt;pre&gt;
class Post &amp;lt; ActiveRecord::Base
  validates_length_of :meta, :maximum =&amp;gt; 3, :allow_blank =&amp;gt; true
end

p = Post.new(:meta =&amp;gt; "")
p.valid?  #=&amp;gt; true
&lt;/pre&gt;

	&lt;p&gt;&#24863;&#35874; &lt;a href="http://yudionrails.com/2007/12/17/rails-2-0-final-released-summary-of-features"&gt;Yudi&lt;/a&gt; &#25552;&#20379;&#26412;&#31995;&#21015;&#25991;&#26723;&lt;/p&gt;


	&lt;p&gt;&#21407;&#25991;&#20316;&#32773;&#26159; Ryan Daigle, &#35831;&#35775;&#38382;&lt;a href="http://ryandaigle.com"&gt;&#20182;&#30340;&#21338;&#23458;&lt;/a&gt;&lt;/p&gt;</description>
      <pubDate>Sat, 07 Jun 2008 05:56:38 Z</pubDate>
      <guid>http://wiki.rubyonrailscn.org/rails/show/Rails2_0%E6%96%B0%E7%89%B9%E6%80%A7_RailsValidation%E7%8E%B0%E5%9C%A8%E5%85%81%E8%AE%B8_%E4%B8%BA%E7%A9%BA</guid>
      <link>http://wiki.rubyonrailscn.org/rails/show/Rails2_0%E6%96%B0%E7%89%B9%E6%80%A7_RailsValidation%E7%8E%B0%E5%9C%A8%E5%85%81%E8%AE%B8_%E4%B8%BA%E7%A9%BA</link>
    </item>
    <item>
      <title>Rails2_0&#26032;&#29305;&#24615;_&#35774;&#32622;&#25554;&#20214;&#21152;&#36733;&#39034;&#24207;</title>
      <description>&lt;p&gt;&#26080;&#35770;&#22312;&#20219;&#20309;&#26102;&#20505;&#65292;&#24744;&#37117;&#21487;&#20197;&#20934;&#30830;&#35774;&#32622;&#21551;&#21160; rails &#31243;&#24207;&#25152;&#38656;&#35201;&#30340;&#25554;&#20214;&#65292;&#32780;&#19981;&#26159;&#36890;&#36807;&#23384;&#22312;&#20110; environment.rb &#37324;&#30340;&#36825;&#27573;&#20195;&#30721;&#26469;&#30171;&#33510;&#30340;&#21152;&#36733; vender/plugins &#30446;&#24405;&#20013;&#30340;&#25152;&#26377;&#25554;&#20214;&#65306;&lt;/p&gt;


&lt;pre&gt;
# Only load the plugins named here, by default all plugins in vendor/plugins are loaded 
# &#21482;&#21152;&#36733;&#36825;&#37324;&#21015;&#20986;&#30340;&#25554;&#20214;&#65292;&#40664;&#35748;&#26102;&#21152;&#36733; vendor/plugins &#20013;&#30340;&#25152;&#26377;&#25554;&#20214;&#12290;&#65288;&#40664;&#35748;&#26102;&#19979;&#38754;&#20195;&#30721;&#34987;&#35774;&#23450;&#20026; comment&#65289;
config.plugins = %W( exception_notification ssl_requirement ) 
&lt;/pre&gt;

	&lt;p&gt;&#38382;&#39064;&#26159;&#65292;&#24403;&#24744;&#35774;&#32622;&#29305;&#23450;&#20960;&#20010;&#25554;&#20214;&#30340;&#21152;&#36733;&#39034;&#24207;&#26102;&#65292;&#21333;&#21333;&#20026;&#20102;&#35774;&#32622;&#21152;&#36733;&#39034;&#24207;&#24744;&#21448;&#35201;&#21015;&#20986;&#25152;&#26377;&#38656;&#35201;&#30340;&#25554;&#20214;&#21517;&#31216;&#12290;&lt;/p&gt;


	&lt;p&gt;&#19981;&#36807;&#65292;&#29616;&#22312; &#36825;&#20010;&#38382;&#39064; &#21487;&#20197;&#36890;&#36807;&#22312; config.plugin &#37324;&#20351;&#29992; :all &#31526;&#21495;&#26469;&#20195;&#26367;&#37325;&#26032;&#21015;&#20986;&#38656;&#35201;&#30340;&#25554;&#20214;&#12290;&lt;/p&gt;


&lt;pre&gt;
config.plugins = [ :exception_notification, :ssl_requirement, :all ] 
&lt;/pre&gt;

	&lt;p&gt;&#36825;&#26679;&#24744;&#21487;&#20197;&#26356;&#21152;&#26041;&#20415;&#30340;&#25511;&#21046;&#25554;&#20214;&#21152;&#36733;&#39034;&#24207;&#12290;&#22914;&#26524;&#24744;&#24819;&#23558;&#37096;&#20998;&#25554;&#20214;&#25918;&#21040;&#26368;&#21518;&#65292;&#21017;&#21487;&#20197;&#23558; :all &#25554;&#22312;&#21152;&#36733;&#39034;&#24207;&#30340;&#20013;&#38388;&#65306;&lt;/p&gt;


&lt;pre&gt;
config.plugins = [ :exception_notification, :all, :ssl_requirement ] 
&lt;/pre&gt;</description>
      <pubDate>Sat, 07 Jun 2008 05:55:27 Z</pubDate>
      <guid>http://wiki.rubyonrailscn.org/rails/show/Rails2_0%E6%96%B0%E7%89%B9%E6%80%A7_%E8%AE%BE%E7%BD%AE%E6%8F%92%E4%BB%B6%E5%8A%A0%E8%BD%BD%E9%A1%BA%E5%BA%8F</guid>
      <link>http://wiki.rubyonrailscn.org/rails/show/Rails2_0%E6%96%B0%E7%89%B9%E6%80%A7_%E8%AE%BE%E7%BD%AE%E6%8F%92%E4%BB%B6%E5%8A%A0%E8%BD%BD%E9%A1%BA%E5%BA%8F</link>
    </item>
    <item>
      <title>Rails2_0&#26032;&#29305;&#24615;_Exception Handling&#30340;&#21319;&#32423;</title>
      <description>&lt;p&gt;&#26681;&#25454;&#19981;&#21516;&#30340; application exception &#25552;&#20379;&#19981;&#21516;&#30340;&#35299;&#20915;&#26041;&#24335;&#65288;&#27604;&#22914; redirect user &#25110; render &#29305;&#23450;&#30340;&#39029;&#38754; &#65289;&#26159;&#24456;&#24120;&#35265;&#30340;&#35774;&#35745;&#27169;&#24335;&#12290;&#22312;&#36825;&#20010; &#26356;&#26032;&#31995;&#21015; &#20043;&#21069;&#25105;&#20204;&#32463;&#24120;&#38656;&#35201;&#22312; controller &#37324;&#36229;&#37327;&#21152;&#36733; rescue_action_in_public method:&lt;/p&gt;


&lt;pre&gt;
class PostsController &amp;lt; ApplicationController
  def rescue_action_in_public(exception)
    case(exception)
      when ActiveRecord::RecordNotFound then render :file =&amp;gt; '/bad_record'
      when NoMethodError then render :file =&amp;gt; '/no_method'
      else render :file =&amp;gt; '/error'
    end
  end
end
&lt;/pre&gt;

	&lt;p&gt;&#24456;&#23481;&#26131;&#21457;&#29616;&#36825;&#27573;&#20195;&#30721;&#31435;&#21363;&#34987;&#25193;&#23637;&#25104;&#20102;&#22810;&#32452;&#20081;&#20102;&#22871;&#30340; if/else &#22768;&#26126;&#12290;&lt;/p&gt;


	&lt;p&gt;&#29616;&#22312;&#25105;&#20204;&#25317;&#26377;&#20102;&#19968;&#22871;&#38750;&#24120;&#31616;&#27905;&#30340;&#26041;&#27861;&#26469;&#36890;&#36807;&#26032;&#30340; rescue_from &#26469;&#38138;&#23637;&#19981;&#21516;&#30340; exception &#19982; handler &#33033;&#32476;&#12290; rescue_from &#20351;&#19968;&#20010; exception &#30340;&#31867;&#22411;&#19982;&#19968;&#20010; handler &#30340;&#26041;&#27861;&#21517;&#31216;&#30452;&#25509;&#26643;&#21040;&#19968;&#36215;&#65292;&#20351;&#24471;exception&#30340;&#22788;&#29702;&#21464;&#24471;&#26356;&#21152;&#31616;&#21333;&#26131;&#25026;&#65306;&lt;/p&gt;


&lt;pre&gt;
class PostsController &amp;lt; ApplicationController

  # &#20174; exception &#21040; handler methods &#30340;&#22768;&#26126;
  rescue_from ActiveRecord::RecordNotFound, :with =&amp;gt; :bad_record
  rescue_from NoMethodError, :with =&amp;gt; :show_error

  def bad_record; render :file =&amp;gt; '/bad_record'; end
  def show_error(exception); render :text =&amp;gt; exception.message; end

end
&lt;/pre&gt;

	&lt;p&gt;&#35831;&#35760;&#20303;&#65292;exception handler methods &#26082;&#21487;&#20197;&#20316;&#20026;&#26080;&#23454;&#21442;&#30340; method, &#20063;&#21487;&#20197;&#28155;&#21152;&#19968;&#20010; &#38382;&#39064;&#24418;&#24335;&#30340; exception &#20316;&#20026;&#23454;&#21442; &#65288;&#22914;&#19978;&#38754;&#30340; show_error &#25152;&#31034;&#65289;&#12290;&lt;/p&gt;


	&lt;p&gt;&#24744;&#20063;&#21487;&#20197; &#20351;&#29992; block &#25110;&#32773; proc &#26469;&#35774;&#32622; rescue_from &#37324;&#30340; exception&#22788;&#29702;&#26041;&#24335;&#65306;&lt;/p&gt;


&lt;pre&gt;
class PostsController &amp;lt; ApplicationController

  # &#20174; exception &#21040; handler methods &#30340;&#22768;&#26126;
  rescue_from(ActiveRecord::RecordNotFound) { |e| render :file =&amp;gt; '/bad_record' }
  rescue_from NoMethodError, :with =&amp;gt; proc { |e| render :text =&amp;gt; e.message }

end
&lt;/pre&gt;

	&lt;p&gt;&#24863;&#35874; &lt;a href="http://yudionrails.com/2007/12/17/rails-2-0-final-released-summary-of-features"&gt;Yudi&lt;/a&gt; &#25552;&#20379;&#26412;&#31995;&#21015;&#25991;&#26723;&lt;/p&gt;


	&lt;p&gt;&#21407;&#25991;&#20316;&#32773;&#26159; Ryan Daigle, &#35831;&#35775;&#38382;&lt;a href="http://ryandaigle.com"&gt;&#20182;&#30340;&#21338;&#23458;&lt;/a&gt;&lt;/p&gt;</description>
      <pubDate>Sat, 07 Jun 2008 05:54:03 Z</pubDate>
      <guid>http://wiki.rubyonrailscn.org/rails/show/Rails2_0%E6%96%B0%E7%89%B9%E6%80%A7_ExceptionHandling%E7%9A%84%E5%8D%87%E7%BA%A7</guid>
      <link>http://wiki.rubyonrailscn.org/rails/show/Rails2_0%E6%96%B0%E7%89%B9%E6%80%A7_ExceptionHandling%E7%9A%84%E5%8D%87%E7%BA%A7</link>
    </item>
    <item>
      <title>Rails2_0&#26032;&#29305;&#24615;_&#32593;&#31449;&#31614;&#21517;&#38450;&#25252;&#30340;&#25913;&#36827;</title>
      <description>&lt;p&gt;&#20170;&#26085;&#35752;&#35770; &lt;a href="http://www.quarkruby.com/2007/9/20/ruby-on-rails-security-guide"&gt;Rails &#23433;&#20840;&#24615;&#30340;&#35805;&#39064;&lt;/a&gt; &#36234;&#26469;&#36234;&#28909;&#65292;&#22240;&#27492; Rails &#23558; &lt;a href="http://projects.wh.techno-weenie.net/browser/plugins/csrf_killer"&gt;CsrfKiller &#25554;&#20214;&lt;/a&gt; &#21152;&#20837;&#20102; &lt;a href="http://dev.rubyonrails.org/changeset/7592%E3%80%82"&gt;&#26680;&#24515;&#37096;&#20998;&lt;/a&gt;&lt;/p&gt;


	&lt;p&gt;&lt;span class="newWikiWord"&gt;Csrf Killer&lt;a href="http://wiki.rubyonrailscn.org/rails/new/CsrfKiller"&gt;?&lt;/a&gt;&lt;/span&gt; &#25554;&#20214;&#20026;&#25152;&#26377;&#30340;&#38750;GET&lt;sup&gt;1&lt;/sup&gt;&#35831;&#27714; &#20013;&#30340;form &#28155;&#21152;&#20102;&#19968;&#20010;&#29420;&#29305;&#30340;session token &#19968;&#26639;&#12290;&#36825;&#19968;&#26639;&#20869;&#23481;&#30830;&#20445;&#20102;&#25509;&#25910;&#21040;&#30340;&#35831;&#27714;&#24517;&#39035;&#26159;&#26469;&#33258;&#20110; &#25480;&#26435;&#29992;&#25143;&#30340; session&lt;sup&gt;2&lt;/sup&gt;&lt;/p&gt;


	&lt;p&gt;&#29616;&#22312;&#36718;&#21040; &#40664;&#35748;&#21151;&#33021; &#20102;&#12290;&#22914;&#26524;&#24744;&#21482;&#24819;&#24212;&#29992;&#40664;&#35748;&#30340;&#34892;&#20026;&#21017;&#19981;&#24517;&#35774;&#32622;&#20219;&#20309;&#19996;&#35199;&#12290;&#28982;&#32780;&#24744;&#20173;&#28982;&#21487;&#20197;&#36890;&#36807;&#20197;&#19979;&#31034;&#20363;&#38024;&#23545;&#33258;&#24049;&#30340;&#35774;&#23450;&#26469;&#36827;&#34892;&#35843;&#25972;&#65306;&lt;/p&gt;


&lt;pre&gt;
class PostsController &amp;lt; ApplicationController

  protect_from_forgery :secret =&amp;gt; '2kdjnaLI8', :only =&amp;gt; [:update, :delete, :create]
  ...
end
&lt;/pre&gt;

	&lt;p&gt;&#22914;&#26524;&#24744;&#24050;&#32463;&#20351;&#29992; edge Rails &#30340;&#40664;&#35748; cookie &#30340; session&#23384;&#36142; &#65292;&#37027;&#20040;&#24744;&#21017;&#19981;&#24517;&#35774;&#32622; :secret &#23494;&#38053;&#12290;&lt;/p&gt;


&lt;pre&gt;
protect_from_forgery :only =&amp;gt; [:update, :delete, :create]
&lt;/pre&gt;

	&lt;p&gt;&#22914;&#26524;&#24744;&#27809;&#26377;&#20351;&#29992; cookie &#30340; session &#23384;&#36142;&#65292;&#21017;&#21487;&#20197;&#25913;&#21464;&#29992;&#26469;&#24314;&#31435;&#29420;&#29305;&#34588;&#26376;&#30340; digest method (&#40664;&#35748;method&#26159; &#8216;SHA1&#8217;)&#12290;&lt;/p&gt;


&lt;pre&gt;
protect_from_forgery :secret =&amp;gt; '2kaienna9ea90djnaLI8', :digest =&amp;gt; 'MD5'
&lt;/pre&gt;

	&lt;p&gt;&#24403;&#31995;&#32479;&#25509;&#25910;&#21040;&#22806;&#37096;&#35831;&#27714;&#30340;&#26102;&#20505;&#65292;&#22914;&#26524;&#35831;&#27714;&#26080;&#27861;&#28385;&#36275;&#24403;&#21069;session&#30340;&#31614;&#21517;&#20445;&#25252;&#26631;&#31614;&#65292;&#31995;&#32479;&#23558;&#20250;&#36755;&#20986;&#19968;&#20010;&#26469;&#33258; ActionController::InvalidAuthenticityToken &#30340; exception&#12290;&#20063;&#35768;&#36825;&#27573;&#20195;&#30721;&#22312;&#23558;&#26469;&#20250;&#26377;&#26032;&#30340;&#38169;&#35823;&#36755;&#20986;&#35821;&#27861;&#65311;&lt;br /&gt;&#27880;&#24847;&#65306;&#37492;&#21035;&#35831;&#27714;&#30340;&#31614;&#21517;&#20445;&#25252;&#21151;&#33021;&#21482;&#22312;&#19968;&#19979;&#24773;&#20917;&#20013;&#21487;&#20197;&#34987;&#24212;&#29992;&#65306;&lt;/p&gt;


	&lt;ul&gt;
	&lt;li&gt;&#38750;-GET &#35831;&#27714;&#65292;&#25152;&#20197;&#35831;&#30830;&#23450;&#25913;&#21464;&#29366;&#24577;&#30340;&#35831;&#27714;&#23646;&#20110; &lt;span class="caps"&gt;PUT&lt;/span&gt;/POST/DELETE &#35831;&#27714;&#20043;&#19968;&#12290;&lt;/li&gt;
	&lt;/ul&gt;


	&lt;ul&gt;
	&lt;li&gt;&#23545;&#20110;html&#20197;&#21450;Ajax&#35831;&#27714;&#12290;&#22914;&#26524;&#24744;&#24819;&#25193;&#23637; verifiable_request_format? &#21017;&#38656;&#35201;&#20808;&#35206;&#30422;&#23427;&#12290;&lt;/li&gt;
	&lt;/ul&gt;


&lt;pre&gt;
skip_before_filter :verify_authenticity_token
&lt;/pre&gt;

	&lt;p&gt;&#22914;&#26524;&#24744;&#24819;&#22312;&#20840;&#32593;&#31449;&#33539;&#22260;&#20013;&#21462;&#28040;&#36825;&#39033;&#21151;&#33021;&#65292;&#21482;&#35201;&#23558;&#19979;&#21015;&#28155;&#21152;&#21040; application.rb:&lt;/p&gt;


&lt;pre&gt;
self.allow_forgery_protection = false
&lt;/pre&gt;

	&lt;h2&gt;&#27880;&#37322;&lt;/h2&gt;


	&lt;ol&gt;
	&lt;li&gt;&lt;span class="caps"&gt;HTTP &lt;/span&gt;&#21160;&#35789;&#21253;&#25324;&#65306; &lt;span class="caps"&gt;GET&lt;/span&gt;/PUT/POST/DELETE&lt;/li&gt;
		&lt;li&gt;&#26356;&#22810;&#20351;&#29992;&#26041;&#27861;&#35831;&#21435; &lt;span class="caps"&gt;CSRF&lt;/span&gt;&lt;/li&gt;
	&lt;/ol&gt;


	&lt;p&gt;&#24863;&#35874; &lt;a href="http://yudionrails.com/2007/12/17/rails-2-0-final-released-summary-of-features"&gt;Yudi&lt;/a&gt; &#25552;&#20379;&#26412;&#31995;&#21015;&#25991;&#26723;&lt;/p&gt;


	&lt;p&gt;&#21407;&#25991;&#20316;&#32773;&#26159; Ryan Daigle, &#35831;&#35775;&#38382;&lt;a href="http://ryandaigle.com"&gt;&#20182;&#30340;&#21338;&#23458;&lt;/a&gt;&lt;/p&gt;</description>
      <pubDate>Sat, 07 Jun 2008 05:45:32 Z</pubDate>
      <guid>http://wiki.rubyonrailscn.org/rails/show/Rails2_0%E6%96%B0%E7%89%B9%E6%80%A7_%E7%BD%91%E7%AB%99%E7%AD%BE%E5%90%8D%E9%98%B2%E6%8A%A4%E7%9A%84%E6%94%B9%E8%BF%9B</guid>
      <link>http://wiki.rubyonrailscn.org/rails/show/Rails2_0%E6%96%B0%E7%89%B9%E6%80%A7_%E7%BD%91%E7%AB%99%E7%AD%BE%E5%90%8D%E9%98%B2%E6%8A%A4%E7%9A%84%E6%94%B9%E8%BF%9B</link>
    </item>
    <item>
      <title>Rails2_0&#26032;&#29305;&#24615;_Rails&#26085;&#24535;&#35760;&#24405;&#21464;&#21033;&#32034;&#28857;&#20799;&#20102;</title>
      <description>&lt;p&gt;Edge Rails &lt;a href="http://dev.rubyonrails.org/changeset/7626"&gt;&#21018;&#21018;&#21457;&#24067;&lt;/a&gt; &#20102;&#19968;&#20010;&#20351;&#29992;&#32531;&#23384;&#30340; &lt;a href="http://dev.rubyonrails.org/browser/trunk/activesupport/lib/active_support/buffered_logger.rb"&gt;&#26085;&#24535;&#35760;&#24405;&#22120;&lt;/a&gt; &#12290;&#30475;&#36215;&#26469;&#65292;&#23427;&#21487;&#20197;&#25226; Rails &#30340;&#26085;&#24535;&#25972;&#29702;&#30340;&#26356;&#21152;&#21033;&#32034;&#12290;&lt;/p&gt;


	&lt;p&gt;&#26032;&#30340;&#26085;&#24535;&#35760;&#24405;&#22120;&#29616;&#22312;&#25104;&#20026;&#20102;&#40664;&#35748;&#65292;&#23613;&#31649;&#24744;&#21487;&#20197;&#36890;&#36807;&#26356;&#25913; environment.rb &#23558;&#23427;&#26356;&#25913;&#21040;&#20174;&#21069;&#65306;&lt;/p&gt;


&lt;pre&gt;
config.logger = Logger.new('/path/to/log', Logger::DEBUG)
&lt;/pre&gt;

	&lt;p&gt;&#19981;&#36807;&#25105;&#19981;&#22826;&#35748;&#21516;&#24744;&#36825;&#26679;&#20570;&#8230;&lt;/p&gt;</description>
      <pubDate>Sat, 07 Jun 2008 05:42:19 Z</pubDate>
      <guid>http://wiki.rubyonrailscn.org/rails/show/Rails2_0%E6%96%B0%E7%89%B9%E6%80%A7_Rails%E6%97%A5%E5%BF%97%E8%AE%B0%E5%BD%95%E5%8F%98%E5%88%A9%E7%B4%A2%E7%82%B9%E5%84%BF%E4%BA%86</guid>
      <link>http://wiki.rubyonrailscn.org/rails/show/Rails2_0%E6%96%B0%E7%89%B9%E6%80%A7_Rails%E6%97%A5%E5%BF%97%E8%AE%B0%E5%BD%95%E5%8F%98%E5%88%A9%E7%B4%A2%E7%82%B9%E5%84%BF%E4%BA%86</link>
    </item>
    <item>
      <title>Rails2_0&#26032;&#29305;&#24615;_&#26032;&#30340;Rails&#25968;&#25454;&#24211;&#25509;&#21475;</title>
      <description>&lt;p&gt;&#22914;&#26524;&#24744;&#30340; Edge Rails &#31243;&#24207;&#19981;&#25903;&#25345; &lt;span class="newWikiWord"&gt;My SQL&lt;a href="http://wiki.rubyonrailscn.org/rails/new/MySQL"&gt;?&lt;/a&gt;&lt;/span&gt;, &lt;span class="newWikiWord"&gt;Postgre SQL&lt;a href="http://wiki.rubyonrailscn.org/rails/new/PostgreSQL"&gt;?&lt;/a&gt;&lt;/span&gt; &#25110; SQLite &#20197;&#22806;&#30340;&#20219;&#20309;&#25968;&#25454;&#24211;&#65292;&#37027;&#20040;&#24744;&#23558;&#38656;&#35201;&#30830;&#20445;&#22312;&#26412;&#26426;&#19978;&#23433;&#35013;&#20102;&#27491;&#30830;&#30340;gem&#12290;&#27491;&#22914;&#29616;&#22312;&#65292;Rails &#26680;&#24515;&#24320;&#21457;&#20154;&#21592;&#22312;&#36817;&#26399;&#21046;&#20316;&#20102;&#19968;&#31995;&#21015;&#26032;&#30340; Rails &#25968;&#25454;&#24211;&#25509;&#21475;&#65292;&#24182;&#20197;gem&#21457;&#24067;&#12290;&#36825;&#19968;&#31995;&#21015;&#20013;&#30340;&#20219;&#20309;&#19968;&#20010;&#37117;&#24212;&#24403;&#35299;&#20915;&#24744;&#19968;&#30452;&#20197;&#26469;&#30340;&#25968;&#25454;&#24211;&#25509;&#21475;&#38382;&#39064;&#65306;&lt;/p&gt;


	&lt;ul&gt;
	&lt;li&gt;gem install activerecord-oracle-adapter&lt;/li&gt;
		&lt;li&gt;gem install activerecord-sqlserver-adapter&lt;/li&gt;
		&lt;li&gt;gem install activerecord-firebird-adapter&lt;/li&gt;
		&lt;li&gt;gem install activerecord-frontbase-adapter&lt;/li&gt;
		&lt;li&gt;gem install activerecord-openbase-adapter&lt;/li&gt;
		&lt;li&gt;gem install activerecord-sybase-adapter&lt;/li&gt;
	&lt;/ul&gt;


	&lt;p&gt;&#24863;&#35874; &lt;a href="http://yudionrails.com/2007/12/17/rails-2-0-final-released-summary-of-features"&gt;Yudi&lt;/a&gt; &#25552;&#20379;&#26412;&#31995;&#21015;&#25991;&#26723;&lt;/p&gt;


	&lt;p&gt;&#21407;&#25991;&#20316;&#32773;&#26159; Ryan Daigle, &#35831;&#35775;&#38382;&lt;a href="http://ryandaigle.com"&gt;&#20182;&#30340;&#21338;&#23458;&lt;/a&gt;&lt;/p&gt;</description>
      <pubDate>Sat, 07 Jun 2008 05:41:03 Z</pubDate>
      <guid>http://wiki.rubyonrailscn.org/rails/show/Rails2_0%E6%96%B0%E7%89%B9%E6%80%A7_%E6%96%B0%E7%9A%84Rails%E6%95%B0%E6%8D%AE%E5%BA%93%E6%8E%A5%E5%8F%A3</guid>
      <link>http://wiki.rubyonrailscn.org/rails/show/Rails2_0%E6%96%B0%E7%89%B9%E6%80%A7_%E6%96%B0%E7%9A%84Rails%E6%95%B0%E6%8D%AE%E5%BA%93%E6%8E%A5%E5%8F%A3</link>
    </item>
    <item>
      <title>Rails2_0&#26032;&#29305;&#24615;_Partial&#20063;&#26377;&#20102;Layout</title>
      <description>&lt;p&gt;&#22914;&#26524;&#24744;&#26102;&#24120;&#23558;&#19981;&#21516; Rails views &#20013;&#30340;&#37325;&#22797;&#20195;&#30721;&#25918;&#21040; partials&#37324;&#65292;&#20063;&#35768;&#24744;&#20063;&#20250;&#23519;&#35273;&#21040;&#25105;&#20204;&#36824;&#21487;&#20197;&#38024;&#23545;&#37027;&#20123;partials&#32487;&#32493; &lt;span class="caps"&gt;DRY&lt;/span&gt;&lt;sup&gt;1&lt;/sup&gt;&#12290;&#20110;&#26159;&#29616;&#22312;&#25105;&#20204;&#21448;&#26377;&#20102;&#19968;&#20010;&#26032;&#30340;&#24037;&#20855;&#26469;&#24110;&#21161; partials &#25104;&#20026; view-&#19990;&#30028;&#37324;&#30340;&#31532;&#19968;&#31561;&#20844;&#27665;&#65306; partial layout &#12290;&#36825;&#20010;&#24037;&#20855;&#30340;&#20351;&#29992;&#27491;&#22914;&#21516;&#25105;&#20204;&#20026; render call &#20013;&#28155;&#21152;&#19968;&#20010; :layout &#36873;&#39033;&#33324;&#31616;&#21333;&#65306;&lt;/p&gt;


&lt;pre&gt;
&amp;lt;!-- in posts/show.html.erb --&amp;gt;
&amp;lt;%= render :partial =&amp;gt; 'header', :layout =&amp;gt; 'boxed', :locals =&amp;gt; {:post =&amp;gt; @post} %&amp;gt;

&amp;lt;!-- in posts/_boxed.html.erb --&amp;gt;
&amp;lt;div class='box'&amp;gt;
  &amp;lt;div id='post_header_&amp;lt;%= post.id %&amp;gt;'&amp;gt;&amp;lt;%= yield %&amp;gt;&amp;lt;/div&amp;gt;
&amp;lt;/div&amp;gt;

&amp;lt;!-- in posts/_header.html.erb --&amp;gt;
&amp;lt;%= post.title %&amp;gt; published on &amp;lt;%= post.published_at %&amp;gt;
&lt;/pre&gt;

	&lt;p&gt;&#35831;&#27880;&#24847;&#21483;&#20570; &#8216;boxed&#8217; &#30340;partial layout&#20381;&#28982;&#20445;&#30041;&#20102; _ &#21069;&#32512;&#30340;&#21629;&#21517;&#20256;&#32479;&#65292;&#24182;&#19988;&#36825;&#20010; partial layout &#20063;&#23384;&#22312;&#20110;&#21516;&#19968;&#20010;&#25991;&#20214;&#22841;&#37324;&lt;sup&gt;2&lt;/sup&gt; &#12290;&#21516;&#26102;&#65292;&#20063;&#35831;&#27880;&#24847;&#20219;&#20309;&#20256;&#20837; partial render &#30340;&#20020;&#26102;&#21464;&#37327;&#23545;&#20110;&#25972;&#20010; partial layout &#20063;&#20250;&#24320;&#25918;&#12290;&#65288;&#27492;&#20363;&#20013;&#26159;post&#65289;&#24744;&#23558;&#36890;&#36807;&#20351;&#29992; yield &#23558; partial &#30340;&#20869;&#23481;&#20256;&#36882;&#21040; layout&#65292;&#27491;&#22914;&#24744;&#22312; master templates &#20013;&#25152;&#20570;&#30340;&#37027;&#26679;&#12290;&lt;/p&gt;


	&lt;p&gt;&#37027;&#20040;&#22312;&#19978;&#38754;&#30340;&#29615;&#22659;&#20013;&#65292;post/show.html.erb &#30340;&#28210;&#26579;&#32467;&#26524;&#23558;&#20026;&#65306;&lt;/p&gt;


&lt;pre&gt;
&amp;lt;div class='box'&amp;gt;
  &amp;lt;div id='post_header_1'&amp;gt;Post Title published on August 3rd, 2007&amp;lt;/div&amp;gt;
&amp;lt;/div&amp;gt;
&lt;/pre&gt;

	&lt;p&gt;&#24744;&#20063;&#21487;&#20197;&#36890;&#36807;&#28210;&#26579; partial layout &#20013;&#30340;&#37096;&#20998;&#20195;&#30721;&#22359;&#26469;&#20445;&#25345; layout &#20010;&#36830;&#36143;&#24615;&#65292;&#20174;&#32780;&#19981;&#20877;&#38656;&#35201;&#25226; content &#20998;&#21106;&#25104;&#19968;&#20221;&#20221;&#30340; partial&#65306;&lt;/p&gt;


&lt;pre&gt;
&amp;lt;!-- in posts/show.html.erb --&amp;gt;
&amp;lt;% render(:layout =&amp;gt; 'boxed', :locals =&amp;gt; {:post =&amp;gt; @post}) do %&amp;gt;
  &amp;lt;%= post.title %&amp;gt; published on &amp;lt;%= post.published_at %&amp;gt;
&amp;lt;% end %&amp;gt;
&lt;/pre&gt;

	&lt;p&gt;&#24555;&#36827;&#34892;&#24744;&#33258;&#24049;&#30340; &lt;span class="caps"&gt;DRY &lt;/span&gt;&#21543;&#65281;&lt;/p&gt;


	&lt;h2&gt;&#27880;&#33050;&lt;/h2&gt;


	&lt;ol&gt;
	&lt;li&gt;&lt;span class="caps"&gt;DRY &lt;/span&gt;&#21363; Don&#8217;t Repeat Yourself &#65288;&#19981;&#35201;&#25776;&#20889;&#37325;&#22797;&#30340;&#20195;&#30721;&#65289;&#65292;&#26159;pragmatic programmer&#31995;&#21015;&#23459;&#20256;&#30340;&#24605;&#24819;&#20027;&#26088;&lt;/li&gt;
		&lt;li&gt;&#23427;&#19981;&#19981;&#20687;&#20854;&#20182;&#30340; master layouts &#19968;&#33324;&#25317;&#26377;&#33258;&#24049;&#30340;&#19987;&#23646;&#25991;&#20214;&#22841;&lt;/li&gt;
	&lt;/ol&gt;</description>
      <pubDate>Sat, 07 Jun 2008 05:40:28 Z</pubDate>
      <guid>http://wiki.rubyonrailscn.org/rails/show/Rails2_0%E6%96%B0%E7%89%B9%E6%80%A7_Partial%E4%B9%9F%E6%9C%89%E4%BA%86Layout</guid>
      <link>http://wiki.rubyonrailscn.org/rails/show/Rails2_0%E6%96%B0%E7%89%B9%E6%80%A7_Partial%E4%B9%9F%E6%9C%89%E4%BA%86Layout</link>
    </item>
    <item>
      <title>Rails2_0&#26032;&#29305;&#24615;_&#20351;&#29992;rake&#26597;&#30475;&#36335;&#30001;&#21015;&#34920;</title>
      <description>&lt;p&gt;&#22312;&#38656;&#35201;&#30340;&#26102;&#20505;&#65292;&#24744;&#21487;&#20197;&#20146;&#33258;&#26597;&#30475;&#31243;&#24207;&#20013;&#30340;&#36335;&#30001;&#26159;&#22914;&#20309;&#34987;&#23450;&#20041;&#30340;&#12290;&#29616;&#22312;&#65292;rake task&#25193;&#23637;&#20102;&#26032;&#30340;&#21151;&#33021;&#65292;&#20351;&#36335;&#30001;&#30340;&#26174;&#31034;&#21464;&#24471;&#26356;&#21152;&#30452;&#35266;&#21644;&#26041;&#20415;&#12290;&lt;/p&gt;


	&lt;p&gt;&#21482;&#35201;&#36816;&#34892;&#65306;&lt;/p&gt;


&lt;pre&gt;
rake routes
&lt;/pre&gt;

	&lt;p&gt;&#30631;&#65292;&#25152;&#26377;&#34987;&#23450;&#20041;&#30340;&#36335;&#30001;&#37117;&#20250;&#34987;&#25972;&#40784;&#30340;&#25670;&#36827;&#19979;&#38754;&#39034;&#24207;&#32534;&#25490;&#30340;&#21015;&#34920;&#65306;&lt;/p&gt;


	&lt;p&gt;&#36335;&#30001;&#21517;&#31216;&#65292; &lt;span class="caps"&gt;HTTP&lt;/span&gt; method&#65292;&#36335;&#30001;&#36335;&#24452;&#65292;&#36335;&#30001;&#35201;&#27714;&lt;/p&gt;


	&lt;p&gt;&#20316;&#20026;&#19968;&#20010;&#23454;&#20363;&#65292;&#36825;&#37324;&#26159;&#25105;&#30005;&#33041;&#20013;&#30340;&#36755;&#20986;&#65306;&lt;/p&gt;


&lt;pre&gt;
all_articles       GET  /articles;all/      {:action=&amp;gt;"all", :controller=&amp;gt;"articles"}
search_articles GET  /articles;search/   {:action=&amp;gt;"search", :controller=&amp;gt;"articles"}
&lt;/pre&gt;

	&lt;p&gt;&#23545;&#20110;&#27809;&#26377;&#20351;&#29992; edge rails &#30340;&#26379;&#21451;&#20204;&#65292;&#20026;&#31243;&#24207;&#28155;&#21152;&#36825;&#20010;rake task&#20063;&#26159;&#38750;&#24120;&#30340;&#23481;&#26131;&#65306;&lt;/p&gt;


&lt;pre&gt;
curl http://svn.rubyonrails.org/rails/trunk/railties/lib/tasks/routes.rake &amp;gt; lib/tasks/routes.rake
&lt;/pre&gt;

	&lt;p&gt;&#36825;&#20010;task&#23545;&#20110;&#22823;&#37327;&#24212;&#29992;&#20102;&#36335;&#30001;&#39764;&#27861;&#30340;RESTful&#24212;&#29992;&#31243;&#24207;&#23588;&#20854;&#26377;&#29992;&#12290;&#29616;&#22312;&#24744;&#21487;&#20197;&#22909;&#22909;&#30340;&#20599;&#31397;&#36825;&#20123;&#36335;&#30001;&#39764;&#27861;&#32972;&#21518;&#31192;&#23494;&#20102;&#12290;&lt;/p&gt;


	&lt;p&gt;&#24863;&#35874; &lt;a href="http://yudionrails.com/2007/12/17/rails-2-0-final-released-summary-of-features"&gt;Yudi&lt;/a&gt; &#25552;&#20379;&#26412;&#31995;&#21015;&#25991;&#26723;&lt;/p&gt;


	&lt;p&gt;&#21407;&#25991;&#20316;&#32773;&#26159; Ryan Daigle, &#35831;&#35775;&#38382;&lt;a href="http://ryandaigle.com"&gt;&#20182;&#30340;&#21338;&#23458;&lt;/a&gt;&lt;/p&gt;</description>
      <pubDate>Sat, 07 Jun 2008 05:37:15 Z</pubDate>
      <guid>http://wiki.rubyonrailscn.org/rails/show/Rails2_0%E6%96%B0%E7%89%B9%E6%80%A7_%E4%BD%BF%E7%94%A8rake%E6%9F%A5%E7%9C%8B%E8%B7%AF%E7%94%B1%E5%88%97%E8%A1%A8</guid>
      <link>http://wiki.rubyonrailscn.org/rails/show/Rails2_0%E6%96%B0%E7%89%B9%E6%80%A7_%E4%BD%BF%E7%94%A8rake%E6%9F%A5%E7%9C%8B%E8%B7%AF%E7%94%B1%E5%88%97%E8%A1%A8</link>
    </item>
    <item>
      <title>Rails2_0&#26032;&#29305;&#24615;_Fixtures&#22534;&#31215;</title>
      <description>&lt;p&gt;&#22914;&#26524;&#24744;&#24050;&#32463;&#21388;&#20518;&#20102;&#24314;&#31435; Fixtures &#22534;&#31215;&#26102;&#19981;&#26029;&#30340;&#24341;&#29992; fixture method &#30340;&#35805;&#65292;&#20170;&#22825;&#26159;&#24744;&#30340;&#24184;&#36816;&#26085;&#65281;&lt;/p&gt;


	&lt;p&gt;&#36807;&#21435;&#19981;&#26029;&#37325;&#22797;&#36755;&#20837;&#30340;&#26085;&#23376;&#24050;&#32463;&#32467;&#26463;&#20102;&#65306;&lt;/p&gt;


&lt;pre&gt;
fixtures :states
..
assert_equal [states(:nc), states(:va)], State.find(:all)
&lt;/pre&gt;

	&lt;p&gt;&#32780;&#36825;&#37324;&#24744;&#21487;&#20197;&#19968;&#27425;&#24341;&#29992;&#22810;&#20010;fixture&#30340;&#24555;&#25463;&#35821;&#27861;&#65306;&lt;/p&gt;


&lt;pre&gt;
fixtures :states
..
assert_equal states(:nc, :va), State.find(:all)
&lt;/pre&gt;

	&lt;p&gt;&#26159;&#38761;&#21629;&#24615;&#30340;&#21319;&#32423;&#20040;&#65311;&#19981;&#26159;&#12290;&#26377;&#29992;&#30340;&#21319;&#32423;&#65311;&#26159;&#30340;&#12290;&lt;/p&gt;


	&lt;p&gt;&#24863;&#35874; &lt;a href="http://yudionrails.com/2007/12/17/rails-2-0-final-released-summary-of-features"&gt;Yudi&lt;/a&gt; &#25552;&#20379;&#26412;&#31995;&#21015;&#25991;&#26723;&lt;/p&gt;


	&lt;p&gt;&#21407;&#25991;&#20316;&#32773;&#26159; Ryan Daigle, &#35831;&#35775;&#38382;&lt;a href="http://ryandaigle.com"&gt;&#20182;&#30340;&#21338;&#23458;&lt;/a&gt;&lt;/p&gt;</description>
      <pubDate>Sat, 07 Jun 2008 05:35:58 Z</pubDate>
      <guid>http://wiki.rubyonrailscn.org/rails/show/Rails2_0%E6%96%B0%E7%89%B9%E6%80%A7_Fixtures%E5%A0%86%E7%A7%AF</guid>
      <link>http://wiki.rubyonrailscn.org/rails/show/Rails2_0%E6%96%B0%E7%89%B9%E6%80%A7_Fixtures%E5%A0%86%E7%A7%AF</link>
    </item>
    <item>
      <title>Rails2_0&#26032;&#29305;&#24615;_&#24102;&#22238;&#24615;&#24863;&#30340;&#19968;&#38754;</title>
      <description>&lt;p&gt;&#36824;&#35760;&#24471;&#37027;&#20123;&#22914;&#27492;&#21560;&#24341;&#20320;&#30340; &lt;a href="http://errtheblog.com/posts/51-sexy-migrations"&gt;migration&lt;/a&gt; &#21527;&#65311;&#30340;&#30830;&#65292;&#23427;&#20204;&#29616;&#22312;&#24050;&#32463;&#26159; &lt;a href="http://dev.rubyonrails.org/changeset/6667"&gt;&#20027;&#27969;&lt;/a&gt; &#20102;&#12290;&#22312;&#36825;&#37324;&#25105;&#19981;&#20250;&#20877;&#37325;&#22797;&#23427;&#20204;&#37027;&#20123;&#24050;&#32463;&#34987;&#38416;&#36848;&#30340;&#29305;&#24615; &#8211; &#28982;&#32780;&#20540;&#24471;&#19968;&#25552;&#30340;&#26159;Rails&#24050;&#32463;&#25226;&#36825;&#24615;&#24863;&#19968;&#38754;&#24102;&#36827;&#20102;&#23427;&#30340;&#20195;&#30721;&#20013;&#12290;&lt;/p&gt;


	&lt;p&gt;&#29616;&#22312;&#24744;&#21487;&#20197;&#65306;&lt;/p&gt;


&lt;pre&gt;
create_table "users", :force =&amp;gt; true do |t| 
  t.integer :group_id, :employer_id
  t.string :first, :last
  t.timestamps
end
&lt;/pre&gt;

	&lt;p&gt;&#19978;&#38754;&#30340;&#31034;&#20363;&#20013;&#65292;&#25105;&#20204;&#22312; group_id &#19982; employer_id &#20013;&#36873;&#25321;&#20102; integer &#21015;&#65292;&#22312; first &#19982; last &#20013;&#36873;&#25321;&#20102; string &#21015;&#12290;timestamps &#21464;&#39764;&#26415;&#33324; &#30340;&#20026;&#24744;&#21019;&#24314; created_at &#19982; updated_at&#12290;&lt;/p&gt;


	&lt;p&gt;The list of supported column types are: &#25903;&#25345;&#20013;&#30340;&#24207;&#21015;&#26377;&#65306;&lt;/p&gt;


	&lt;ul&gt;
	&lt;li&gt;string&lt;/li&gt;
		&lt;li&gt;text&lt;/li&gt;
		&lt;li&gt;integer&lt;/li&gt;
		&lt;li&gt;float&lt;/li&gt;
		&lt;li&gt;decimal&lt;/li&gt;
		&lt;li&gt;datetime&lt;/li&gt;
		&lt;li&gt;timestamp&lt;/li&gt;
		&lt;li&gt;time&lt;/li&gt;
		&lt;li&gt;date&lt;/li&gt;
		&lt;li&gt;binary&lt;/li&gt;
		&lt;li&gt;boolean&lt;/li&gt;
	&lt;/ul&gt;


	&lt;p&gt;&#36824;&#31561;&#20160;&#20040;&#21602;&#65292;&#31435;&#21363;&#29609;&#36716;&#24744;&#30340; record&#65292;&#36824;&#22238;&#23427;&#24615;&#24863;&#30340;&#19968;&#38754;&#21543;&#65281;&lt;/p&gt;


	&lt;p&gt;&#24863;&#35874; &lt;a href="http://yudionrails.com/2007/12/17/rails-2-0-final-released-summary-of-features"&gt;Yudi&lt;/a&gt; &#25552;&#20379;&#26412;&#31995;&#21015;&#25991;&#26723;&lt;/p&gt;


	&lt;p&gt;&#21407;&#25991;&#20316;&#32773;&#26159; Ryan Daigle, &#35831;&#35775;&#38382;&lt;a href="http://ryandaigle.com"&gt;&#20182;&#30340;&#21338;&#23458;&lt;/a&gt;&lt;/p&gt;</description>
      <pubDate>Sat, 07 Jun 2008 05:34:37 Z</pubDate>
      <guid>http://wiki.rubyonrailscn.org/rails/show/Rails2_0%E6%96%B0%E7%89%B9%E6%80%A7_%E5%B8%A6%E5%9B%9E%E6%80%A7%E6%84%9F%E7%9A%84%E4%B8%80%E9%9D%A2</guid>
      <link>http://wiki.rubyonrailscn.org/rails/show/Rails2_0%E6%96%B0%E7%89%B9%E6%80%A7_%E5%B8%A6%E5%9B%9E%E6%80%A7%E6%84%9F%E7%9A%84%E4%B8%80%E9%9D%A2</link>
    </item>
  </channel>
</rss>
