{"id":8,"date":"2009-04-15T17:40:58","date_gmt":"2009-04-15T17:40:58","guid":{"rendered":"http:\/\/pro369.com\/Website_Design\/?p=4"},"modified":"2009-04-15T17:40:58","modified_gmt":"2009-04-15T17:40:58","slug":"ruby-on-rails-%e6%ad%a3%e9%ab%94%e4%b8%ad%e6%96%87%e7%89%88","status":"publish","type":"post","link":"https:\/\/por.tw\/Website_Design\/ruby-on-rails-%e6%ad%a3%e9%ab%94%e4%b8%ad%e6%96%87%e7%89%88\/","title":{"rendered":"Ruby on Rails \u6b63\u9ad4\u4e2d\u6587\u7248"},"content":{"rendered":"<p><span style=\"background-color: #ff0000; color: #ffff00;\"><strong><span style=\"font-size: 20px; background-color: #ff0000;\">Ruby on Rails \u6b63\u9ad4\u4e2d\u6587\u7248<\/span><\/strong><\/span><br \/>\nRoR \u5305\u62ec\u4e86<br \/>\n\u751a\u9ebc\uff1fRails \u662f\u500b\u5b8c\u6574\u7684\u7a0b\u5f0f\u67b6\u69cb\u7528\u4f86\u958b\u767c\u6709\u8cc7\u6599\u5eab\u7684\u7db2\u9801\u7a0b\u5f0f\u3002 \u5176\u7a0b\u5f0f\u8a2d\u8a08\u578b\u614b\u70ba \u6a21\u578b-\u6aa2\u8996-\u63a7\u5236\u5668 (Model-View-Control)\u3002\u4e0d\u7ba1\u662f \u6aa2\u8996\u88e1\u7684 Ajax\uff0c\u9084\u662f \u63a7\u5236\u5668\u88e1\u7684 \u9700\u6c42\/\u56de\u8986\uff0c\u9084\u662f\u6a21\u64ec\u8cc7\u6599\u5eab\u7684\u6a21\u578b\uff0cRails \u90fd\u662f\u7528 Ruby \u4f86\u958b\u767c\u3002\u4f60\u53ea\u9700\u8981\u4e00\u500b\u8cc7\u6599\u5eab \u548c\u4e00\u500b\u7db2\u9801\u4f3a\u670d\u5668\u5c31\u53ef\u4ee5\u4e0a\u7dda\u3002<br \/>\n\u8ab0\u5df2\u7d93\u5728\u7528<br \/>\nRails \u4e86?\u65b0\u958b\u7684\u516c\u53f8\uff0c\u975e\u71df\u5229\u6027\u7684\u7d44\u7e54\uff0c\u548c\u4f01\u696d\u6a5f\u69cb\u90fd\u6709\u5728\u7528 Rails\u3002 Rails \u6ce8\u91cd\u57fa\u790e\u5efa\u8a2d\u6240\u4ee5\u5e7e\u4e4e\u4efb\u4f55\u7684\u7db2\u9801\u7a0b\u5f0f\u90fd\u53ef\u7528\u5230\u3002 \u5354\u540c\u904b\u4f5c\uff0c\u793e\u7fa4\uff0c\u96fb\u5b50\u5546\u52d9\uff0c\u5167\u5bb9\u7ba1\u7406\uff0c\u7d71\u8a08\u8cc7\u6599\u7b49 \u90fd\u53ef\u7528 RoR\u3002\u4f8b\u5b50\uff1a<br \/>\n<img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/por.tw\/Website_Design\/wp-content\/uploads\/2009\/04\/Website-Design-earning-money-08-650x433.jpg\" alt=\"\" class=\"alignnone size-medium wp-image-380\" width=\"650\" height=\"433\" \/><br \/>\nBasecamp: \u4f01\u5283\u7ba1\u7406<br \/>\n37signals \u958b\u767c\u7684\u7b2c\u4e00\u5957 Rails \u7a0b\u5f0f\u3002<br \/>\nCampfire: \u5546\u696d\u754c\u7528\u7684\u5718\u9ad4\u804a\u5929\u5ba4\u3002<br \/>\nAjax \u5957\u7528\u63a8\u65bc\u6975\u9650\u3002<br \/>\n43things: \u5be6\u73fe\u4f60\u751f\u547d\u4e2d\u7684\u76ee\u7684\u3002<br \/>\nODEO: \u9304\u4e0b\u4e26\u5206\u4eab\u97f3\u6a02\u3002<br \/>\nStrongspace: \u5b89\u5168\u7684\u5206\u4eab\u6a94\u6848\u3002<br \/>\nTypo: \u90e8\u843d\u683c\u7a0b\u5f0f<br \/>\n\u770b\u66f4\u591a\u4f8b\u5b50<br \/>\n\u6211\u9084\u9700\u8981<br \/>\n\u751a\u9ebc?Rails \u8ddf\u5f88\u591a\u4e0d\u540c\u7684 \u7db2\u9801\u4f3a\u670d\u5668 \u548c \u8cc7\u6599\u5eab \u90fd\u53ef\u76f8\u5bb9\u3002\u6211\u5011\u63a8\u85a6Apache \u6216 lighttpd \u8dd1 FastCGI \/ SCGI \u4f86\u7576\u7db2\u9801\u4f3a\u670d\u5668\u3002\u8cc7\u6599\u5eab\u7684\u8a71\u4f60\u53ef\u4ee5\u7528 MySQL, PostgreSQL, SQLite, Oracle, SQL Server, DB2, \u6216 Firebird. \u5e7e\u4e4e\u4efb\u4f55\u7684\u96fb\u8166\u7cfb\u7d71\u90fd\u53ef\u4ee5\u8dd1\uff0c\u4f46\u6211\u5011\u63a8\u85a6 Unix \u5bb6\u65cf\u7684\u4f86\u7576\u4e0a\u7dda\u7528\u7684\u6a5f\u5668\u3002<br \/>\n\u5982\u679c\u4f60\u9700\u8981\u67b6\u7ad9\uff0cRoR \u5b98\u65b9\u7db2\u7ad9\u7528\u7684\u662f TextDrive\u3002 \u5b83\u63d0\u4f9b\u6975\u597d\u7684\u5c08\u6848\u4e26\u6709\u7d93\u9a57\u7684\u8077\u54e1\u3002 \u4e0d\u7ba1\u662f\u5206\u4eab\u6216\u79c1\u4eba\u7684\u67b6\u7ad9\u670d\u52d9\uff0c\u4ed6\u5011\u662f RoR \u7684\u5c08\u5bb6\u3002 Wiki \u88e1\u9762\u6709\u5217\u5176\u4ed6\u63d0\u4f9b\u67b6\u7ad9\u670d\u52d9\u7684\u5ee0\u5546\u3002<\/p>\n<div class=\"sub\">\n<h1 id=\"mcetoc_1dig94qa60\"><span style=\"font-size: x-large;\">Ruby<\/span><\/h1>\n<\/div>\n<div class=\"main\">\n&nbsp;<br \/>\nRails \u958b\u767c\u74b0\u5883\u8a73\u7d30\u7684\u6b65\u9a5f\u53ef\u4ee5<a href=\"http:\/\/www.qweruiop.org\/nchcrails\/posts\/47\">\u4f86\u9019\u88e1<\/a>\u770b\uff0c \u88e1\u9762\u6709\u5f71\u7247\u986f\u793a\u5594\u3002<br \/>\n\u6211\u5011\u5efa\u8b70\u7528<span class=\"highlight\">Ruby 1.8.6<\/span> . Ruby 1.8.7, 1.8.5, 1.8.4, \u9084\u6709 1.8.2 \u4e5f\u53ef\u4ee5\uff0c\u53ef\u662f 1.8.3 \u7248\u4e0d\u884c\u3002<br \/>\n<a href=\"http:\/\/ftp.ruby-lang.org\/pub\/ruby\/1.8\/ruby-1.8.6.tar.gz\">\u539f\u59cb\u78bc:<\/a> \u81ea\u5df1\u7de8\u8f2f\u7a0b\u5f0f<br \/>\n<a href=\"http:\/\/rubyforge.org\/frs\/?group_id=167\">Windows \u5b89\u88dd\u6a94\u6848:<\/a> Ruby, \u53d7\u6b61\u8fce\u7684\u5916\u52a0\u529f\u80fd, \u7de8\u8f2f\u5668<br \/>\n<strong>OS X 10.4:<\/strong> \u5167\u542b\u7684 Ruby \u58de\u4e86\uff0c<a href=\"http:\/\/hivelogic.com\/narrative\/articles\/ruby-rails-mongrel-mysql-osx\">\u7528\u9019\u7bc7\u5165\u9580\u6587\u7ae0<\/a><br \/>\n<strong>OS X 10.5:<\/strong> \u5148\u5b89\u88dd\u7cfb\u7d71\u7684 developer tools \u7136\u5f8c\u4e0b &#8220;gem update rails&#8221; \u6307\u4ee4<br \/>\n\u8a73\u7d30\u7684 Ruby \u8ddf Rails \u5b89\u88dd\u65b9\u6cd5\u53ef\u5230<a href=\"http:\/\/www.qweruiop.org\/nchcrails\/posts\/47\">\u9019\u88e1<\/a>\u53c3\u8003\u3002\n<\/div>\n<div class=\"sub\">\n<h1 id=\"mcetoc_1dig94qa61\"><span style=\"font-size: x-large;\">RubyGems<\/span><\/h1>\n<\/div>\n<div class=\"main\">\n&nbsp;<br \/>\n<a href=\"http:\/\/docs.rubygems.org\/\">RubyGems<\/a> \u662f <span class=\"highlight\">\u6a19\u6e96\u7684 Ruby \u5957\u88dd\u8edf\u9ad4\u7ba1\u7406\u7a0b\u5f0f<\/span>. \u5b83\u5f88\u50cf apt-get, emerge, \u548c\u5176\u4ed6\u4f5c\u696d\u7cfb\u7d71\u7684\u5957\u88dd\u8edf\u9ad4\u7ba1\u7406\u7a0b\u5f0f\u3002<br \/>\n<a href=\"http:\/\/rubyforge.org\/frs\/?group_id=126\">\u4e0b\u8f09<\/a><br \/>\n(\u89e3\u58d3\u7e2e\uff0c\u7136\u5f8c\u5728\u5176\u76ee\u9304\u4e0b\u6253\uff1a&#8221;ruby setup.rb&#8221;)\n<\/div>\n<div class=\"sub\">\n<h1 id=\"mcetoc_1dig94qa62\"><span style=\"font-size: x-large;\">Rails<\/span><\/h1>\n<\/div>\n<div class=\"main\">\n\u7576 RubyGems \u5b89\u88dd\u597d\u5f8c\uff0c\u7528\u4e00\u884c\u7684\u6307\u4ee4\u5c31\u53ef\u4ee5\u5b89\u88dd Rails \u548c\u5b83\u7684\u9644\u5c6c\u7269\uff1a<\/p>\n<p style=\"margin-left: 20px;\"><strong>gem install rails &#8211;include-dependencies<\/strong><\/p>\n<p>\u4ee5\u5f8c\u66f4\u65b0\u7248\u672c\u7684 Rails \u4e5f\u53ef\u4ee5\u7528\u540c\u6a23\u7684\u65b9\u5f0f\u5b89\u88dd\u3002\u6216\u4e0b\u8f09<a href=\"http:\/\/rubyforge.org\/frs\/?group_id=307\">\u7368\u7acb\u7684 Rails \u7a0b\u5f0f<\/a>\u3002\n<\/div>\n<div class=\"sub\">\n<h1 id=\"mcetoc_1dig94qa63\"><span style=\"font-size: x-large;\">\u5beb\u4f60\u7684\u7a0b\u5f0f<\/span><\/h1>\n<\/div>\n<div class=\"main\">\n\u628a\u7a0b\u5f0f\u7684\u9aa8\u5e79\u5beb\u597d\u7136\u5f8c\u555f\u52d5\u4f3a\u670d\u5668\uff1a<\/p>\n<p style=\"margin-left: 20px;\"><strong>rails path\/to\/your\/new\/application<\/strong><br \/>\n<strong>cd path\/to\/your\/new\/application<\/strong><br \/>\n<strong>ruby script\/server<\/strong><\/p>\n<p>&#8220;path\/to\/your\/new\/application&#8221; \u662f \u5230\u4f60\u7684\u7a0b\u5f0f\u7684\u8def\u5f91<br \/>\n\u4f60\u73fe\u5728\u5df2\u5728\u8dd1 Ruby on Rails \u4e86! \u6253\u958b http:\/\/0.0.0.0:3000 \u4e26\u9075\u7167\u4e0a\u9762\u7684\u6307\u793a\u3002\n<\/p><\/div>\n<div class=\"sub\">\n<h1 id=\"mcetoc_1dig94qa64\"><span style=\"font-size: x-large;\">\u5305\u88dd\u597d\u7684 Ruby on Rails<\/span><\/h1>\n<\/div>\n<div class=\"main\">\n\u5982\u679c\u4f60\u4e0d\u60f3\u8981\u82b1\u6642\u9593\u81ea\u5df1\u5b89\u88dd Ruby on Rails\uff0c\u4f60\u53ef\u4ee5\u8a66\u8a66\u770b\u5df2\u7d93\u5305\u88dd\u597d\u7684\u8edf\u9ad4\u3002\u9019\u5beb\u8edf\u9ad4\u5305\u542b\u4e86\u6240\u6709\u7684\u8edf\u9ad4\uff1a\u7db2\u9801\u4f3a\u670d\u5668\uff0c\u8cc7\u6599\u5eab\uff0cRuby\uff0cRails \u7b49\u7b49\u3002<br \/>\nOS X: <a href=\"http:\/\/locomotive.sourceforge.net\/\">Locomotive<\/a>.<br \/>\nWindows: <a href=\"http:\/\/instantrails.rubyforge.org\/\">Instant Rails<\/a>.\n<\/div>\n<div class=\"sub\">\n<h1 id=\"mcetoc_1dig94qa65\"><span style=\"font-size: x-large;\">\u7528\u9644\u52a0\u7a0b\u5f0f\u589e\u52a0 Rails \u7684\u529f\u80fd<\/span><\/h1>\n<\/div>\n<div class=\"main\">\n\u7db2\u8def\u4e0a\u6709\u5f88\u591a\u70ba\u4e86 Rails \u67b6\u69cb\u800c\u5beb\u7684\u9644\u52a0\u7a0b\u5f0f\u3002\u96d6\u7136\u5927\u90e8\u4efd\u7684\u4eba\u4e0d\u4e00\u5b9a\u6703\u7528\u5230\uff0c\u5982\u679c\u4f60\u6709\u9700\u8981\u7684\u8a71\uff0c\u5b83\u5011\u6703\u5e6b\u4f60\u589e\u52a0\u5f88\u591a\u5f88\u9177\u7684\u529f\u80fd\u3002\u53bb <a href=\"http:\/\/wiki.rubyonrails.org\/rails\/pages\/Plugins\">wiki \u90a3\u88e1<\/a>\u8b80\u6709\u95dc\u9644\u52a0\u7a0b\u5f0f\u3002\n<\/div>\n<div class=\"sub\">\n<h1 id=\"mcetoc_1dig94qa66\"><span style=\"font-size: x-large;\">\u7de8\u8f2f\u5668<\/span><\/h1>\n<\/div>\n<div class=\"main\">\n\u6574\u500b Rails \u7684<a href=\"http:\/\/www.rubyonrails.org\/core\">\u6838\u5fc3\u5718\u968a<\/a>\u90fd\u7528 OS X \u4e0a\u7684 <a href=\"http:\/\/macromates.com\/\">TextMate<\/a>\u3002\u5b83\u662f\u500b\u5f88\u597d\u7684\u7de8\u8f2f\u5668\uff0c\u6709\u5c08\u9580\u91dd\u5c0d Ruby on Rails \u7684\u95dc\u9375\u5b57\u7a81\u986f\u8ddf\u6307\u4ee4\u3002 \u5982\u679c\u4f60\u6c92\u6709\u5728\u7528\u860b\u679c\u96fb\u8166\uff0c\u8a66\u8a66\u770b <a href=\"http:\/\/www.netbeans.org\/\">Netbeans<\/a>\u3002 \u5b83\u662f\u500b Sun Microsystems \u958b\u767c\u7684\u7de8\u8f2f\u5668\u3002\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>Ruby on Rails \u6b63\u9ad4\u4e2d\u6587\u7248 RoR \u5305\u62ec\u4e86 \u751a\u9ebc\uff1fRails \u662f\u500b\u5b8c\u6574\u7684\u7a0b\u5f0f\u67b6\u69cb\u7528\u4f86\u958b\u767c\u6709\u8cc7\u6599\u5eab\u7684 [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":380,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[16],"tags":[37],"class_list":["post-8","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-16","tag-37"],"_links":{"self":[{"href":"https:\/\/por.tw\/Website_Design\/wp-json\/wp\/v2\/posts\/8","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/por.tw\/Website_Design\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/por.tw\/Website_Design\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/por.tw\/Website_Design\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/por.tw\/Website_Design\/wp-json\/wp\/v2\/comments?post=8"}],"version-history":[{"count":0,"href":"https:\/\/por.tw\/Website_Design\/wp-json\/wp\/v2\/posts\/8\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/por.tw\/Website_Design\/wp-json\/wp\/v2\/media\/380"}],"wp:attachment":[{"href":"https:\/\/por.tw\/Website_Design\/wp-json\/wp\/v2\/media?parent=8"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/por.tw\/Website_Design\/wp-json\/wp\/v2\/categories?post=8"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/por.tw\/Website_Design\/wp-json\/wp\/v2\/tags?post=8"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}