{"id":1531,"date":"2022-05-15T02:36:07","date_gmt":"2022-05-14T18:36:07","guid":{"rendered":"https:\/\/fromideatocreation.com\/?p=677"},"modified":"2023-07-02T17:16:10","modified_gmt":"2023-07-02T09:16:10","slug":"%e5%a6%82%e4%bd%95%e5%9c%a8-ubuntu-20-04-%e4%b8%8a%e4%bd%bf%e7%94%a8-rvm-%e5%ae%89%e8%a3%9d-ruby-on-rails","status":"publish","type":"post","link":"https:\/\/fromideatocreation.com\/?p=1531","title":{"rendered":"\u5982\u4f55\u5728 Ubuntu 20.04 \u4e0a\u4f7f\u7528 RVM \u5b89\u88dd Ruby on Rails"},"content":{"rendered":"\n<p>Ruby on Rails \u662f\u4e00\u7a2e\u6d41\u884c\u7684 Web \u61c9\u7528\u7a0b\u5f0f\u6846\u67b6\uff0c\u5354\u52a9\u60a8\u7528\u66f4\u5c11\u7684\u7a0b\u5f0f\u4ee3\u78bc\u6210\u529f\u5730\u958b\u767c\u5c08\u6848\u3002<\/p>\n\n\n\n<p>RVM\uff0c\u53c8\u7a31 Ruby \u7248\u672c\u7ba1\u7406\u5668\uff0c\u662f\u4e00\u500b\u547d\u4ee4\u5217\u5de5\u5177\uff0c\u53ef\u8b93\u60a8\u7ba1\u7406\u548c\u4f7f\u7528\u591a\u500b Ruby \u958b\u767c\u74b0\u5883\uff0c\u4e26\u5141\u8a31\u60a8\u5728\u5b83\u5011\u4e4b\u9593\u5207\u63db\u3002<\/p>\n\n\n\n<p>\u5728\u672c\u6559\u5b78\u4e2d\uff0c\u60a8\u5c07\u901a\u904e RVM \u5b89\u88dd RVM\u3001Ruby on Rails \u7684\u7a69\u5b9a\u7248\u672c\uff08\u6216\u60a8\u9078\u64c7\u7684\u7279\u5b9a\u7248\u672c\uff09\uff0c\u4ee5\u53ca Node.js \u4ee5\u4f5c\u70ba\u67d0\u4e9b Rails \u529f\u80fd\u6240\u9700\u7684 JavaScript runtime\u3002 \u6700\u5f8c\uff0c\u60a8\u9084\u5c07\u5b78\u7fd2\u5982\u4f55\u79fb\u9664 Rails\u3002<\/p>\n\n\n\n<div style=\"height:24px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h2 class=\"wp-block-heading\">\u7b2c 1 \u6b65 \u2013 \u4f7f\u7528\u6700\u65b0\u7684 Rails \u5b89\u88dd RVM<\/h2>\n\n\n\n<p>\u9996\u5148\uff0c\u60a8\u9700\u8981\u5b89\u88dd\u6216\u66f4\u65b0 GPG\uff08GNU Privacy Guard\uff09\u5230\u6700\u65b0\u7248\u672c\uff0c\u4ee5\u4fbf\u806f\u7e6b\u516c\u9470\u670d\u52d9\u5668\u4e26\u8acb\u6c42\u8207\u8a72 ID \u95dc\u806f\u7684\u5bc6\u9470\uff1a<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"bash\" class=\"language-bash\">$ sudo apt update\n$ sudo apt install gnupg2<\/code><\/pre>\n\n\n\n<p>\u63a5\u4e0b\u4f86\uff0c\u60a8\u5c07\u8acb\u6c42 RVM \u9805\u76ee\u7684\u516c\u9470\u4f86\u9a57\u8b49\u60a8\u4e0b\u8f09\u7684\u5408\u6cd5\u6027\uff1a<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"bash\" class=\"language-bash\">$ gpg2 --keyserver hkp:\/\/keyserver.ubuntu.com --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3 7D2BAF1CF37B13E2069D6956105BD0E739499BDB<\/code><\/pre>\n\n\n\n<p>\u60a8\u5c07\u4f7f\u7528 <code>curl<\/code> \u6307\u4ee4\u5f9e\u5b98\u7db2\u4e0b\u8f09 RVM \u5b89\u88dd\u8173\u672c\uff1a<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"bash\" class=\"language-bash\">$ \\curl -sSL https:\/\/get.rvm.io -o rvm.sh<\/code><\/pre>\n\n\n\n<p>\u5f15\u5c0e\u547d\u4ee4\u7684\u53cd\u659c\u6760\u78ba\u4fdd\u6211\u5011\u4f7f\u7528\u7684\u662f\u5e38\u898f <code>curl<\/code> \u547d\u4ee4\uff0c\u800c\u4e0d\u662f\u4efb\u4f55\u66f4\u6539\u7684\u5225\u540d\u7248\u672c\u3002 <code>-s<\/code> \u6a19\u8a8c\u6307\u793a\u5be6\u7528\u7a0b\u5f0f\u61c9\u8207 <code>-S<\/code> \u6a19\u8a8c\u4e00\u8d77\u4ee5\u6c89\u9ed8\u6a21\u5f0f\u904b\u884c\uff0c\u4ee5\u5728 <code>curl<\/code> \u5931\u6557\u6642\u4ecd\u5141\u8a31\u8f38\u51fa\u932f\u8aa4\u3002 <code>-L<\/code> \u6a19\u8a8c\u544a\u8a34\u5be6\u7528\u7a0b\u5f0f\u9075\u5faa\u91cd\u65b0\u5b9a\u5411\uff0c\u6700\u5f8c <code>-o<\/code> \u6a19\u8a8c\u6307\u793a\u5c07\u8f38\u51fa\u5beb\u5165\u6587\u4ef6\u800c\u4e0d\u662f\u6a19\u6e96\u8f38\u51fa\u3002<\/p>\n\n\n\n<p>\u4e0b\u8f09\u5f8c\uff0c\u5982\u679c\u60a8\u60f3\u5728\u61c9\u7528\u4e4b\u524d\u6aa2\u67e5\u8173\u672c\u7684\u5167\u5bb9\uff0c\u8acb\u57f7\u884c\uff1a<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"bash\" class=\"language-bash\">$ nano rvm.sh<\/code><\/pre>\n\n\n\n<p>\u8981\u95dc\u9589 <code>nano<\/code>\uff0c\u8acb\u6309 CTRL-X\u3002<\/p>\n\n\n\n<p>\u73fe\u5728\uff0c\u60a8\u53ef\u4ee5\u5c07\u5b83\u901a\u904e pipe \u50b3\u8f38\u5230 <code>bash<\/code> \u4ee5\u5b89\u88dd\u6700\u65b0\u7684\u7a69\u5b9a Rails \u7248\u672c\uff0c\u8a72\u7248\u672c\u9084\u5c07\u5f15\u5165\u76f8\u95dc\u7684\u6700\u65b0\u7a69\u5b9a\u7248\u672c\u7684 Ruby\u3002<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"bash\" class=\"language-bash\">$ cat rvm.sh | bash -s stable --rails<\/code><\/pre>\n\n\n\n<p>\u5b89\u88dd\u5b8c\u6210\u5f8c\uff0c\u5f9e\u5b89\u88dd\u76ee\u9304\u7372\u53d6 RVM \u8173\u672c\uff1a<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"bash\" class=\"language-bash\">$ source ~\/.rvm\/scripts\/rvm<\/code><\/pre>\n\n\n\n<p>\u60a8\u73fe\u5728\u61c9\u8a72\u5df2\u7d93\u8a2d\u5b9a\u597d\u4e86\u4e00\u500b\u5b8c\u6574\u7684 Ruby on Rails \u74b0\u5883\u3002<\/p>\n\n\n\n<div style=\"height:24px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h2 class=\"wp-block-heading\">\u7b2c 2 \u6b65 \u2013 \u5b89\u88dd\u548c\u4f7f\u7528\u7279\u5b9a\u7684 Ruby \u6216 Rails \u7248\u672c<\/h2>\n\n\n\n<p>\u5982\u679c\u60a8\u9700\u8981\u70ba\u60a8\u7684\u61c9\u7528\u7a0b\u5e8f\u5b89\u88dd\u7279\u5b9a\u7248\u672c\u7684 Ruby\uff0c\u800c\u4e0d\u50c5\u50c5\u662f\u6700\u65b0\u7248\u672c\uff0c\u60a8\u53ef\u4ee5\u4f7f\u7528 RVM \u4f86\u5b8c\u6210\u3002 \u9996\u5148\uff0c\u901a\u904e\u5217\u51fa\u5b83\u5011\u4f86\u67e5\u770b\u53ef\u7528\u7684 Ruby \u7248\u672c\uff1a<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"bash\" class=\"language-bash\">$ rvm list known<\/code><\/pre>\n\n\n\n<p>\u7136\u5f8c\uff0c\u901a\u904e RVM \u5b89\u88dd\u60a8\u9700\u8981\u7684\u7279\u5b9a Ruby \u7248\u672c\uff0c\u60a8\u53ef\u4ee5\u5c07\u5e95\u4e0b\u7684\u7248\u672c\u865f\u66ff\u63db\u70ba\u4efb\u4f55\u60a8\u60f3\u8981\u7684\u7248\u672c\uff0c\u5e95\u4e0b\u4ee5 <code>3.0.0<\/code> \u4f5c\u70ba\u793a\u7bc4\uff1a<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"bash\" class=\"language-bash\">$ rvm install 3.0.0<\/code><\/pre>\n\n\n\n<p>\u5b89\u88dd\u5f8c\uff0c\u60a8\u53ef\u4ee5\u901a\u904e\u8f38\u5165\u4ee5\u4e0b\u5167\u5bb9\u5217\u51fa\u5df2\u5b89\u88dd\u7684\u53ef\u7528 Ruby \u7248\u672c\uff1a<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"bash\" class=\"language-bash\">$ rvm list<\/code><\/pre>\n\n\n\n<p>\u60a8\u53ef\u4ee5\u901a\u904e\u8f38\u5165\u4ee5\u4e0b\u5167\u5bb9\u5728\u4e0d\u540c Ruby \u7248\u672c\u4e4b\u9593\u5207\u63db\uff1a<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"bash\" class=\"language-bash\">$ rvm use 3.0.0<\/code><\/pre>\n\n\n\n<p>\u7531\u65bc Rails \u662f\u4e00\u7a2e gem\uff0c\u5b83\u662f\u4e00\u7a2e\u5305\u542b Ruby \u7a0b\u5f0f\u7684\u6a19\u6e96\u5316\u683c\u5f0f\uff0c\u56e0\u6b64\u60a8\u9084\u53ef\u4ee5\u4f7f\u7528 <code>gem<\/code> \u547d\u4ee4\u5b89\u88dd\u5404\u7a2e\u7248\u672c\u7684 Rails\u3002 \u8b93\u6211\u5011\u9996\u5148\u901a\u904e\u641c\u7d22\u5217\u51fa Rails \u7684\u6709\u6548\u7248\u672c\uff1a<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"bash\" class=\"language-bash\">$ gem search '^rails$' --all<\/code><\/pre>\n\n\n\n<p>\u63a5\u4e0b\u4f86\uff0c\u60a8\u53ef\u4ee5\u5b89\u88dd\u6240\u9700\u7248\u672c\u7684 Rails\u3002 \u5c07\u7a81\u51fa\u986f\u793a\u7684\u7248\u672c\u865f\u66ff\u63db\u70ba\u60a8\u9078\u64c7\u7684\u7248\u672c\uff0c\u4f8b\u5982 <code>7.0.2<\/code>\u3002<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"bash\" class=\"language-bash\">$ gem install rails -v 7.0.2<\/code><\/pre>\n\n\n\n<p>\u60a8\u53ef\u4ee5\u901a\u904e\u5efa\u7acb gemset\uff0c\u7136\u5f8c\u4f7f\u7528\u4e00\u822c <code>gem<\/code> \u547d\u4ee4\u5728\u5176\u4e2d\u5b89\u88dd Rails\uff0c\u4f86\u70ba\u6bcf\u500b Ruby \u4f7f\u7528\u5404\u7a2e Rails \u7248\u672c\u3002<\/p>\n\n\n\n<p>\u8981\u5275\u5efa gemset\uff0c\u60a8\u5c07\u4f7f\u7528\uff1a<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"bash\" class=\"language-bash\">$ rvm gemset create gemset_name<\/code><\/pre>\n\n\n\n<p>\u8981\u5728\u5efa\u7acb gemset \u6642\u6307\u5b9a\u8981\u4f7f\u7528\u7684 Ruby \u7248\u672c\uff0c\u8acb\u4f7f\u7528\uff1a<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"bash\" class=\"language-bash\">$ rvm 3.0.0@gemset_name  --create<\/code><\/pre>\n\n\n\n<p>gemsets \u5141\u8a31\u6211\u5011\u70ba gems \u63d0\u4f9b\u7368\u7acb\u7684\u74b0\u5883\uff0c\u4e26\u70ba\u60a8\u5b89\u88dd\u7684\u6bcf\u500b\u7248\u672c\u7684 Ruby \u63d0\u4f9b\u591a\u500b\u74b0\u5883\u3002<\/p>\n\n\n\n<div style=\"height:24px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h2 class=\"wp-block-heading\">\u7b2c 3 \u6b65 \u2013 \u5b89\u88dd Node.js\uff0c\u4e00\u500b JavaScript Runtime\uff08\u53ef\u9078\uff09<\/h2>\n\n\n\n<p>\u8aaa\u8d77\u4f86 Rails \u662f\u4e0d\u9700\u8981 Node.js\uff0c\u56e0\u70ba\u73fe\u5728\u9810\u8a2d\u4f7f\u7528 <code>importmaps<\/code>\u3002 \u7136\u800c\u5be6\u969b\u4e0a\uff0c\u60a8\u4ecd\u7136\u53ef\u80fd\u6703\u9047\u5230\u9700\u8981\u5b83\u7684\u61c9\u7528\u7a0b\u5f0f\u3002<\/p>\n\n\n\n<p>\u9996\u5148\uff0c\u901a\u904e\u5c07 Node.js \u8173\u672c\u8f38\u51fa\u5230\u6587\u4ef6\u4f86\u9a57\u8b49\u5b83\uff0c\u7136\u5f8c\u4f7f\u7528 nano \u8b80\u53d6\u5b83\uff1a<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"bash\" class=\"language-bash\">$ \\curl -sSL https:\/\/deb.nodesource.com\/setup_17.x -o nodejs.sh\n$ nano nodejs.sh<\/code><\/pre>\n\n\n\n<p>\u5728\u9019\u4e4b\u5f8c\uff0c\u60a8\u53ef\u4ee5\u5b89\u88dd NodeSource Node.js v17.x \u5132\u5b58\u5eab\uff1a<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"bash\" class=\"language-bash\">$ cat nodejs.sh | sudo -E bash -<\/code><\/pre>\n\n\n\n<p>\u6b64\u8655\u4f7f\u7528\u7684 <code>-E<\/code> \u6a19\u8a8c\u5c07\u4fdd\u7559\u7528\u6236\u73fe\u6709\u7684\u74b0\u5883\u8b8a\u6578\u3002<\/p>\n\n\n\n<p>\u73fe\u5728\u60a8\u53ef\u4ee5\u66f4\u65b0 apt \u4e26\u4f7f\u7528\u5b83\u4f86\u5b89\u88dd Node.js\uff1a<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"bash\" class=\"language-bash\">$ sudo apt update\n$ sudo apt install nodejs<\/code><\/pre>\n\n\n\n<p>\u6b64\u6642\uff0c\u60a8\u53ef\u4ee5\u958b\u59cb\u6e2c\u8a66\u60a8\u7684 Ruby on Rails \u5b89\u88dd\u4e26\u958b\u59cb\u958b\u767c Web \u61c9\u7528\u7a0b\u5f0f\u3002<\/p>\n\n\n\n<p>\u88dc\u5145\u8aaa\u660e\uff0c\u60a8\u4e5f\u53ef\u4ee5\u900f\u904e <code>n<\/code> \u6a21\u7d44\u66f4\u65b9\u4fbf\u5730\u5b89\u88dd\u8207\u5347\u7d1a Node.js\uff0c\u8acb\u898b<a href=\"https:\/\/fromideatocreation.com\/archives\/595\" title=\"\u5982\u4f55\u5728 Ubuntu \u5b89\u88dd\u8207\u66f4\u65b0\u81f3\u6700\u65b0\u7248\u7684 node.js\">\u300c\u5982\u4f55\u5728 UBUNTU \u5b89\u88dd\u8207\u66f4\u65b0\u81f3\u6700\u65b0\u7248\u7684 NODE.JS\u300d<\/a>\u4e00\u6587\u3002<\/p>\n\n\n\n<div style=\"height:24px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h2 class=\"wp-block-heading\">\u7b2c 4 \u6b65 \u2013 \u79fb\u9664 RVM\uff08\u53ef\u9078\uff09<\/h2>\n\n\n\n<p>\u5982\u679c\u60a8\u4e0d\u518d\u60f3\u8981\u4f7f\u7528 RVM\uff0c\u9996\u5148\u60a8\u53ef\u4ee5\u522a\u9664 <code>.bashrc<\/code> \u6587\u4ef6\u4e2d\u7684\u547c\u53eb\u8173\u672c\uff0c\u7136\u5f8c\u522a\u9664 RVM \u6587\u4ef6\u4f86\u79fb\u9664\u5b83\u3002<\/p>\n\n\n\n<p>\u9996\u5148\uff0c\u4f7f\u7528 nano \u4e4b\u985e\u7684\u6587\u672c\u7de8\u8f2f\u5668\u522a\u9664\u547c\u53eb\u8173\u672c\uff1a<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"bash\" class=\"language-bash\">$ nano ~\/.bashrc<\/code><\/pre>\n\n\n\n<p>\u5411\u4e0b\u6372\u52d5\u5230\u60a8\u770b\u5230\u6587\u4ef6\u7684 RVM \u884c\u7684\u4f4d\u7f6e\uff1a<\/p>\n\n\n\n<pre title=\"~\/.bashrc\" class=\"wp-block-code\"><code lang=\"\" class=\"\">...\n# Add RVM to PATH for scripting. Make sure this is the last PATH variable change.\nexport PATH=\"$PATH:$HOME\/.rvm\/bin\"<\/code><\/pre>\n\n\n\n<p>\u522a\u9664\u9019\u4e9b\u884c\uff0c\u7136\u5f8c\u5132\u5b58\u4e26\u95dc\u9589\u6587\u4ef6\u3002<\/p>\n\n\n\n<p>\u6700\u5f8c\uff0c\u4f7f\u7528\u4ee5\u4e0b\u547d\u4ee4\u522a\u9664 RVM\uff1a<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"bash\" class=\"language-bash\">$ rm -rf ~\/.rvm<\/code><\/pre>\n","protected":false},"excerpt":{"rendered":"<p>Ruby on Rails \u662f\u4e00\u7a2e\u6d41\u884c\u7684 Web \u61c9\u7528\u7a0b\u5f0f\u6846\u67b6\uff0c\u5354\u52a9\u60a8\u7528\u66f4\u5c11\u7684\u7a0b\u5f0f\u4ee3\u78bc\u6210\u529f\u5730\u958b\u767c\u5c08\u6848\u3002\u5728\u672c\u6559\u5b78\u4e2d\uff0c\u60a8\u5c07\u901a\u904e RVM \u5b89\u88dd RVM\u3001Ruby on Rails \u7684\u7a69\u5b9a\u7248\u672c\uff08\u6216\u60a8\u9078\u64c7\u7684\u7279\u5b9a\u7248\u672c\uff09\uff0c\u4ee5\u53ca Node.js \u4ee5\u4f5c\u70ba\u67d0\u4e9b Rails \u529f\u80fd\u6240\u9700\u7684 JavaScript runtime\u3002 \u6700\u5f8c\uff0c\u60a8\u9084\u5c07\u5b78\u7fd2\u5982\u4f55\u79fb\u9664 Rails\u3002<\/p>\n","protected":false},"author":1,"featured_media":643,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"qubely_global_settings":"","qubely_interactions":"","inline_featured_image":false,"_ti_tpc_template_sync":false,"_ti_tpc_template_id":"","footnotes":""},"categories":[105,106,95],"tags":[127,128],"class_list":["post-1531","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-ruby-on-rails","category-106","category-programming","tag-installation","tag-ruby-on-rails"],"acf":[],"aioseo_notices":[],"qubely_featured_image_url":{"full":["https:\/\/fromideatocreation.com\/wp-content\/uploads\/2023\/04\/blog54-1.webp",520,460,false],"landscape":["https:\/\/fromideatocreation.com\/wp-content\/uploads\/2023\/04\/blog54-1.webp",520,460,false],"portraits":["https:\/\/fromideatocreation.com\/wp-content\/uploads\/2023\/04\/blog54-1.webp",362,320,false],"thumbnail":["https:\/\/fromideatocreation.com\/wp-content\/uploads\/2023\/04\/blog54-1.webp",150,133,false],"medium":["https:\/\/fromideatocreation.com\/wp-content\/uploads\/2023\/04\/blog54-1.webp",300,265,false],"medium_large":["https:\/\/fromideatocreation.com\/wp-content\/uploads\/2023\/04\/blog54-1.webp",520,460,false],"large":["https:\/\/fromideatocreation.com\/wp-content\/uploads\/2023\/04\/blog54-1.webp",520,460,false],"1536x1536":["https:\/\/fromideatocreation.com\/wp-content\/uploads\/2023\/04\/blog54-1.webp",520,460,false],"2048x2048":["https:\/\/fromideatocreation.com\/wp-content\/uploads\/2023\/04\/blog54-1.webp",520,460,false],"qubely_landscape":["https:\/\/fromideatocreation.com\/wp-content\/uploads\/2023\/04\/blog54-1.webp",520,460,false],"qubely_portrait":["https:\/\/fromideatocreation.com\/wp-content\/uploads\/2023\/04\/blog54-1.webp",362,320,false],"qubely_thumbnail":["https:\/\/fromideatocreation.com\/wp-content\/uploads\/2023\/04\/blog54-1.webp",113,100,false],"nazare_single_thumb":["https:\/\/fromideatocreation.com\/wp-content\/uploads\/2023\/04\/blog54-1.webp",520,460,false],"nazare_post_card_thumb":["https:\/\/fromideatocreation.com\/wp-content\/uploads\/2023\/04\/blog54-1.webp",480,425,false],"nazare_widget_thumb":["https:\/\/fromideatocreation.com\/wp-content\/uploads\/2023\/04\/blog54-1.webp",100,88,false],"nazare_widget_first_thumb":["https:\/\/fromideatocreation.com\/wp-content\/uploads\/2023\/04\/blog54-1.webp",233,206,false],"nazare_el_banner_left":["https:\/\/fromideatocreation.com\/wp-content\/uploads\/2023\/04\/blog54-1.webp",520,460,false],"nazare_el_banner_right":["https:\/\/fromideatocreation.com\/wp-content\/uploads\/2023\/04\/blog54-1.webp",520,460,false],"nazare_el_post_400x376":["https:\/\/fromideatocreation.com\/wp-content\/uploads\/2023\/04\/blog54-1.webp",400,354,false],"nazare_el_post_520x460":["https:\/\/fromideatocreation.com\/wp-content\/uploads\/2023\/04\/blog54-1.webp",520,460,false],"nazare_el_post_500x335":["https:\/\/fromideatocreation.com\/wp-content\/uploads\/2023\/04\/blog54-1.webp",379,335,false],"nazare_el_post_500x300":["https:\/\/fromideatocreation.com\/wp-content\/uploads\/2023\/04\/blog54-1.webp",339,300,false],"nazare_el_post_655x640":["https:\/\/fromideatocreation.com\/wp-content\/uploads\/2023\/04\/blog54-1.webp",520,460,false],"nazare_el_post_500x290":["https:\/\/fromideatocreation.com\/wp-content\/uploads\/2023\/04\/blog54-1.webp",328,290,false],"nazare_el_post_416x278":["https:\/\/fromideatocreation.com\/wp-content\/uploads\/2023\/04\/blog54-1.webp",314,278,false],"nazare_el_post_480x425":["https:\/\/fromideatocreation.com\/wp-content\/uploads\/2023\/04\/blog54-1.webp",480,425,false],"nazare_el_post_635x640":["https:\/\/fromideatocreation.com\/wp-content\/uploads\/2023\/04\/blog54-1.webp",520,460,false],"nazare_el_post_305x177":["https:\/\/fromideatocreation.com\/wp-content\/uploads\/2023\/04\/blog54-1.webp",200,177,false],"nazare_el_post_400x400":["https:\/\/fromideatocreation.com\/wp-content\/uploads\/2023\/04\/blog54-1.webp",400,354,false],"nazare_el_post_400x360":["https:\/\/fromideatocreation.com\/wp-content\/uploads\/2023\/04\/blog54-1.webp",400,354,false],"nazare_el_post_416x416":["https:\/\/fromideatocreation.com\/wp-content\/uploads\/2023\/04\/blog54-1.webp",416,368,false],"nazare_el_post_485x430":["https:\/\/fromideatocreation.com\/wp-content\/uploads\/2023\/04\/blog54-1.webp",485,430,false],"nazare_el_post_700x467":["https:\/\/fromideatocreation.com\/wp-content\/uploads\/2023\/04\/blog54-1.webp",520,460,false],"nazare_el_post_1000x581":["https:\/\/fromideatocreation.com\/wp-content\/uploads\/2023\/04\/blog54-1.webp",520,460,false],"nazare_post_1320x605":["https:\/\/fromideatocreation.com\/wp-content\/uploads\/2023\/04\/blog54-1.webp",520,460,false],"nazare_post_705x565":["https:\/\/fromideatocreation.com\/wp-content\/uploads\/2023\/04\/blog54-1.webp",520,460,false],"nazare_post_400x265":["https:\/\/fromideatocreation.com\/wp-content\/uploads\/2023\/04\/blog54-1.webp",300,265,false],"nazare_el_post_1248x630":["https:\/\/fromideatocreation.com\/wp-content\/uploads\/2023\/04\/blog54-1.webp",520,460,false],"woocommerce_thumbnail":["https:\/\/fromideatocreation.com\/wp-content\/uploads\/2023\/04\/blog54-1.webp",300,265,false],"woocommerce_single":["https:\/\/fromideatocreation.com\/wp-content\/uploads\/2023\/04\/blog54-1.webp",520,460,false],"woocommerce_gallery_thumbnail":["https:\/\/fromideatocreation.com\/wp-content\/uploads\/2023\/04\/blog54-1.webp",100,88,false],"shop_catalog":["https:\/\/fromideatocreation.com\/wp-content\/uploads\/2023\/04\/blog54-1.webp",300,265,false],"shop_single":["https:\/\/fromideatocreation.com\/wp-content\/uploads\/2023\/04\/blog54-1.webp",520,460,false],"shop_thumbnail":["https:\/\/fromideatocreation.com\/wp-content\/uploads\/2023\/04\/blog54-1.webp",100,88,false]},"qubely_author":{"display_name":"Wen","author_link":"https:\/\/fromideatocreation.com\/?author=1"},"qubely_comment":0,"qubely_category":"<a href=\"https:\/\/fromideatocreation.com\/?cat=105\" rel=\"category\">Ruby on Rails<\/a> <a href=\"https:\/\/fromideatocreation.com\/?cat=106\" rel=\"category\">\u6559\u5b78<\/a> <a href=\"https:\/\/fromideatocreation.com\/?cat=95\" rel=\"category\">\u7a0b\u5f0f\u958b\u767c<\/a>","qubely_excerpt":"Ruby on Rails \u662f\u4e00\u7a2e\u6d41\u884c\u7684 Web \u61c9\u7528\u7a0b\u5f0f\u6846\u67b6\uff0c\u5354\u52a9\u60a8\u7528\u66f4\u5c11\u7684\u7a0b\u5f0f\u4ee3\u78bc\u6210\u529f\u5730\u958b\u767c\u5c08\u6848\u3002\u5728\u672c\u6559\u5b78...","_links":{"self":[{"href":"https:\/\/fromideatocreation.com\/index.php?rest_route=\/wp\/v2\/posts\/1531","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/fromideatocreation.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/fromideatocreation.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/fromideatocreation.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/fromideatocreation.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=1531"}],"version-history":[{"count":1,"href":"https:\/\/fromideatocreation.com\/index.php?rest_route=\/wp\/v2\/posts\/1531\/revisions"}],"predecessor-version":[{"id":1700,"href":"https:\/\/fromideatocreation.com\/index.php?rest_route=\/wp\/v2\/posts\/1531\/revisions\/1700"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/fromideatocreation.com\/index.php?rest_route=\/wp\/v2\/media\/643"}],"wp:attachment":[{"href":"https:\/\/fromideatocreation.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=1531"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/fromideatocreation.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=1531"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/fromideatocreation.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=1531"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}