{"id":160,"date":"2020-05-05T16:24:02","date_gmt":"2020-05-05T09:24:02","guid":{"rendered":"http:\/\/td_uid_80_59cbd0a2e30bf"},"modified":"2023-02-21T10:05:25","modified_gmt":"2023-02-21T03:05:25","slug":"cai-dat-ruby-on-rails-tren-ubuntu-win-10","status":"publish","type":"post","link":"https:\/\/thietkewebdalat.net\/blog\/cai-dat-ruby-on-rails-tren-ubuntu-win-10\/","title":{"rendered":"H\u01b0\u1edbng d\u1eabn c\u00e0i \u0111\u1eb7t Ruby on rails tr\u00ean ubuntu c\u1ee7a win 10"},"content":{"rendered":"<p>Ch\u00e0o c\u00e1c b\u1ea1n:<\/p>\n<p>H\u00f4m nay m\u00ecnh s\u1ebd h\u01b0\u1edbng d\u1eabn c\u00e1c b\u1ea1n c\u00e1ch c\u00e0i \u0111\u1eb7t ruby on rails tr\u00ean ubuntu c\u1ee7a win 10:<\/p>\n<p>\u0110\u1ea7u ti\u00ean c\u00e1c b\u1ea1n c\u00e0i \u0111\u1eb7t ubuntu nh\u00e9, b\u1ea1n l\u00e0m theo c\u00e1c b\u01b0\u1edbc sau:<\/p>\n<h2>1. Install WSL:<\/h2>\n<p>B\u1ea1n v\u00e0o microsoft store t\u00ecm t\u1eeb kh\u00f3a ubuntu th\u00ec n\u00f3 s\u1ebd ra nh\u01b0 h\u00ecnh v\u00e0 m\u00ecnh ch\u1ecdn phi\u00ean b\u1ea3n ubuntu \u0111\u1ec3 c\u00e0i \u0111\u1eb7t.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-352 size-full\" src=\"https:\/\/thietkewebdalat.net\/blog\/wp-content\/uploads\/2017\/09\/Untitled.png\" alt=\"\" width=\"1366\" height=\"768\" srcset=\"https:\/\/thietkewebdalat.net\/blog\/wp-content\/uploads\/2017\/09\/Untitled.png 1366w, https:\/\/thietkewebdalat.net\/blog\/wp-content\/uploads\/2017\/09\/Untitled-300x169.png 300w, https:\/\/thietkewebdalat.net\/blog\/wp-content\/uploads\/2017\/09\/Untitled-1024x576.png 1024w, https:\/\/thietkewebdalat.net\/blog\/wp-content\/uploads\/2017\/09\/Untitled-768x432.png 768w, https:\/\/thietkewebdalat.net\/blog\/wp-content\/uploads\/2017\/09\/Untitled-696x391.png 696w, https:\/\/thietkewebdalat.net\/blog\/wp-content\/uploads\/2017\/09\/Untitled-1068x600.png 1068w, https:\/\/thietkewebdalat.net\/blog\/wp-content\/uploads\/2017\/09\/Untitled-747x420.png 747w\" sizes=\"auto, (max-width: 1366px) 100vw, 1366px\" \/><\/p>\n<p>Sau \u0111\u00f3 \u0111\u1ee3i m\u1ed9t l\u00e1t th\u00ec n\u00f3 s\u1ebd hi\u1ec7n th\u1ecb nh\u01b0 sau:<\/p>\n<pre><code class=\"plain\">Installing, this may take a few minutes...\r\nPlease create a default UNIX user account. The username does not need to match your \r\nWindows username.\r\nFor more information visit: https:\/\/aka.ms\/wslusers\r\nEnter new UNIX username: admin\r\nEnter new UNIX password: admin@123\r\nRetype new UNIX password:admin@123\r\npasswd: password updated successfully\r\nInstallation successful!\r\nTo run a command as administrator (user \"root\"), use \"sudo &lt;command&gt;\".\r\nSee \"man sudo_root\" for details.\r\n\r\nkevin@KEVIN-SATELLITE:~$\r\n<\/code><\/pre>\n<p>B\u1ea1n nh\u1eadp th\u00f4ng tin \u0111\u0103ng nh\u1eadp v\u00e0o, nh\u01b0 m\u00ecnh l\u00e0m th\u00ec m\u00ecnh nh\u1eadp t\u00e0i kho\u1ea3n \u0111\u0103ng nh\u1eadp l\u00e0 admin v\u00e0 m\u1eadt kh\u1ea9u l\u00e0 admin@123 v\u00e0 \u0111\u1ee3i m\u1ed9t l\u00e1t th\u00ec n\u00f3 s\u1ebd c\u00e0i \u0111\u1eb7t xong, b\u1ea1n c\u00f3 th\u1ec3 ki\u1ec3m tra phi\u00ean b\u1ea3n c\u1ee7a ubuntu b\u1eb1ng c\u00e1ch:<\/p>\n<pre><code class=\"plain\">kevin@KEVIN-SATELLITE:~$ lsb_release -a\r\nNo LSB modules are available.\r\nDistributor ID: Ubuntu\r\nDescription:    Ubuntu 18.04.1 LTS\r\nRelease:        18.04\r\nCodename:       bionic\r\nkevin@KEVIN-SATELLITE:~$\r\n<\/code><\/pre>\n<p>V\u00e0 nh\u01b0 th\u1ebf b\u1ea1n \u0111\u00e3 c\u00e0i xong ubuntu ti\u1ebfp \u0111\u1ebfn b\u1ea1n c\u1ea7n c\u00e0i \u0111\u1eb7t ruby.<\/p>\n<h2>2. Install Ruby<\/h2>\n<ol>\n<li style=\"list-style-type: none;\">\n<ol>\n<li>\n<h4>Install RVM: RVM cho ph\u00e9p b\u1ea1n c\u00e0i \u0111\u01b0\u1ee3c nhi\u1ec1u phi\u00ean b\u1ea3n ruby c\u00f9ng m\u1ed9t l\u00fac ph\u1ee5c v\u1ee5 cho nhi\u1ec1u d\u1ef1 \u00e1n c\u00f3 nhi\u1ec1u phi\u00ean b\u1ea3n ruby kh\u00e1c nhau. B\u1ea1n c\u1ea7n ch\u1ea1y 2 l\u1ec7nh nh\u01b0 sau \u0111\u1ec3 c\u00e0i \u0111\u1eb7t :<\/h4>\n<pre><code class=\"bash hljs\">gpg --keyserver hkp:\/\/keys.gnupg.net --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3 7D2BAF1CF37B13E2069D6956105BD0E739499BDB\r\n<\/code><\/pre>\n<p>v\u00e0<\/p>\n<pre><code class=\"bash hljs\">\\curl -sSL https:\/\/get.rvm.io | bash -s stable\r\n<\/code><\/pre>\n<p>Sau \u0111\u00f3 n\u00f3 s\u1ebd hi\u1ec7n th\u1ecb k\u1ebft qu\u1ea3 nh\u01b0 sau :<\/p>\n<pre><code class=\"plain\">...\r\n\r\nInstalling RVM to \/home\/kevin\/.rvm\/\r\n    Adding rvm PATH line to \/home\/kevin\/.profile \/home\/kevin\/.mkshrc \/home\/kevin\/.bashrc \/home\/kevin\/.zshrc.\r\n    Adding rvm loading line to \/home\/kevin\/.profile \/home\/kevin\/.bash_profile \/home\/kevin\/.zlogin.\r\nInstallation of RVM in \/home\/kevin\/.rvm\/ is almost complete:\r\n\r\n  * To start using RVM you need to run `source \/home\/kevin\/.rvm\/scripts\/rvm`\r\n    in all your open shell windows, in rare cases you need to reopen all shell windows.\r\nkevin@KEVIN-SATELLITE:~$\r\n<\/code><\/pre>\n<p>Ti\u1ebfp theo ch\u00fang ta c\u1ea7n ch\u1ea1y l\u00eanh nh\u01b0 sau \u0111\u1ec3 ho\u00e0n th\u00e0nh vi\u1ec7c c\u00e0i \u0111\u1eb7t:<\/p>\n<pre><code class=\"bash hljs\"><span class=\"hljs-built_in\">source<\/span> \/home\/kevin\/.rvm\/scripts\/rvm\r\n<\/code><\/pre>\n<p>\u0111\u1ec3 ki\u1ec3m tra b\u1ea1n c\u00e0i \u0111\u1eb7t c\u00f3 th\u00e0nh c\u00f4ng hay kh\u00f4ng ta ki\u1ec3m tra phi\u00ean b\u1ea3n c\u00e0i \u0111\u1eb7t c\u1ee7a n\u00f3:<\/p>\n<pre><code class=\"plain\">kevin@KEVIN-SATELLITE:~$ rvm -v\r\nrvm 1.29.4 (latest) by Michal Papis, Piotr Kuczynski, Wayne E. Seguin \r\n[https:\/\/rvm.io]\r\n<\/code><\/pre>\n<p>Nh\u01b0 v\u1eady \u0111\u00e3 c\u00e0i \u0111\u1eb7t xong.<\/li>\n<li>\n<h4>Install a Ruby via RVM :<\/h4>\n<ol>\n<li>Ti\u1ebfp theo m\u00ecnh c\u00e0i Ruby b\u1ea1n ch\u1ea1y l\u1ec7nh sau \u0111\u1ec3 t\u00ecm phi\u00ean b\u1ea3n ruby m\u00e0 b\u1ea1n mu\u1ed1n c\u00e0i \u0111\u1eb7t :\n<pre><code class=\"bash hljs\">rvm list known\r\n<\/code><\/pre>\n<p>N\u00f3 s\u1ebd tr\u1ea3 v\u1ec1 cho b\u1ea1n m\u1ed9t danh s\u00e1ch c\u00e1c phi\u00ean b\u1ea3n ruby:<\/p>\n<pre><code class=\"plain\"># MRI Rubies\r\n[ruby-]1.8.6[-p420]\r\n[ruby-]1.8.7[-head] # security released on head\r\n[ruby-]1.9.1[-p431]\r\n[ruby-]1.9.2[-p330]\r\n[ruby-]1.9.3[-p551]\r\n[ruby-]2.0.0[-p648]\r\n[ruby-]2.1[.10]\r\n[ruby-]2.2[.10]\r\n[ruby-]2.3[.7]\r\n[ruby-]2.4[.4]\r\n[ruby-]2.5[.1]\r\n[ruby-]2.6[.0-preview2]\r\nruby-head\r\n\r\n...\r\n<\/code><\/pre>\n<p>M\u00ecnh s\u1ebd ch\u1ecdn phi\u00ean b\u1ea3n Ruby l\u00e0 2.5.1<\/p>\n<pre><code class=\"bash hljs\">rvm install 2.5.1\r\n<\/code><\/pre>\n<p>Sau \u0111\u00f3 m\u00ecnh ki\u1ec3m tra l\u1ea1i phi\u00ean b\u1ea3n Ruby c\u1ee7a m\u00ecnh :<\/p>\n<pre><code class=\"bash hljs\">ruby -v\r\n<\/code><\/pre>\n<p>K\u1ebft qu\u1ea3 tr\u1ea3 v\u1ec1 l\u00e0 :<\/p>\n<pre><code class=\"plain\">ruby 2.5.1p57 (2018-03-29 revision 63029) [x86_64-linux]\r\n<\/code><\/pre>\n<p>B\u1ea1n mu\u1ed1n xem \u0111\u01b0\u1eddng d\u1eabn l\u01b0u tr\u1eef m\u00e0 phi\u00ean b\u1ea3n Ruby \u0111\u00e3 l\u00e0 b\u1ea1n ch\u1ea1y l\u1ec7nh:<\/p>\n<pre><code class=\"plain\">kevin@KEVIN-SATELLITE:~$ which ruby\r\n\/home\/kevin\/.rvm\/rubies\/ruby-2.5.1\/bin\/ruby\r\n<\/code><\/pre>\n<p>Nh\u01b0 v\u1eady b\u1ea1n \u0111\u00e3 c\u00e0i \u0111\u1eb7t xong phi\u00ean b\u1ea3n Ruby m\u00e0 b\u1ea1n ch\u1ecdn.<\/li>\n<\/ol>\n<\/li>\n<li>Ti\u1ebfp theo b\u1ea1n t\u1ea1o m\u1ed9t d\u1ef1 \u00e1n m\u1edbi :<\/li>\n<li style=\"list-style-type: none;\">Tr\u01b0\u1edbc khi b\u1ea1n t\u1ea1o d\u1ef1 \u00e1n m\u1edbi th\u00ec b\u1ea1n c\u1ea7n c\u00e0i \u0111\u1eb7t gem Bundler\n<pre><code class=\"bash hljs\">gem install bundler\r\n<\/code><\/pre>\n<p>v\u00e0 c\u00e0i Rails<\/p>\n<pre><code class=\"bash hljs\">gem install rails\r\n<\/code><\/pre>\n<p>sau \u0111\u00f3 b\u1ea1n c\u1ea7n t\u1ea1o m\u1ed9t th\u01b0 m\u1ee5c \u0111\u1ec3 l\u01b0u tr\u1eef d\u1ef1 \u00e1n m\u1edbi m\u00ecnh \u0111\u1eb7t n\u00f3 l\u00e0 RailsDemo v\u00e0 b\u1ea1n t\u1ea1o b\u1eb1ng l\u1ec7nh :<\/p>\n<pre><code>mkdir RailsDemo<\/code><\/pre>\n<p>Ti\u1ebfp theo b\u1ea1n ch\u1ea1y l\u1ec7nh cd v\u00e0o th\u01b0 m\u1ee5c b\u1ea1n v\u1eeba t\u1ea1o :<\/p>\n<pre><code>cd RailsDemo<\/code><\/pre>\n<p>V\u00e0 cu\u1ed1i c\u00f9ng l\u00e0 m\u00ecnh ch\u1ea1y l\u1ec7nh :<\/p>\n<pre><code class=\"bash hljs\">rails new my-rails-app --skip-spring --skip-listen\r\n<\/code><\/pre>\n<p>\u0111\u1ec3 t\u1ea1o d\u1ef1 \u00e1n m\u1edbi.<\/p>\n<p>Sau khi ch\u1ea1y xong b\u1ea1n CD v\u00e0o th\u01b0 m\u1ee5c c\u1ee7a d\u1ef1 \u00e1n v\u00e0 ch\u1ea1y l\u1ec7nh rails server \u0111\u1ec3 ch\u1ea1y :<\/p>\n<pre><code class=\"hljs ruby\">kevin@KEVIN-<span class=\"hljs-symbol\">SATELLITE:<\/span>~<span class=\"hljs-regexp\">\/railsdemo$ cd my-rails-app\/<\/span>\r\nUsing \/home\/kevin\/.rvm\/gems\/ruby-<span class=\"hljs-number\">2.5<\/span>.<span class=\"hljs-number\">1<\/span>\r\nkevin@KEVIN-<span class=\"hljs-symbol\">SATELLITE:<\/span>~<span class=\"hljs-regexp\">\/railsdemo\/my<\/span>-rails-app$ rails server\r\n<\/code><\/pre>\n<p>N\u1ebfu n\u00f3 c\u00f3 th\u00f4ng b\u00e1o l\u1ed7i :<\/p>\n<pre><code class=\"plain\">Could not find a JavaScript runtime. See https:\/\/github.com\/rails\/execjs for a list of available runtimes. (ExecJS::RuntimeUnavailable)\r\n<\/code><\/pre>\n<p>Th\u00ec b\u1ea1n c\u00e0i Node js v\u00e0o b\u1eb1ng c\u00e2u l\u1ec7nh :<\/p>\n<pre><code class=\"bash hljs\">sudo apt-get install nodejs\r\n<\/code><\/pre>\n<p>n\u00f3 s\u1ebd hi\u1ec7n th\u1ecb b\u1eaft b\u1ea1n nh\u1eadp m\u1eadt kh\u1ea9u v\u00e0o th\u00ec b\u1ea1n nh\u1eadp m\u1eadt kh\u1ea9u l\u00fac m\u00ecnh c\u00e1i ubuntu nh\u01b0 m\u00ecnh c\u00e0i l\u00e0 admin@123<br \/>\nTi\u1ebfp theo b\u1ea1n c\u00e0i:<\/p>\n<pre><code class=\"bash hljs\">rails server webrick\r\n<\/code><\/pre>\n<p>Sau khi b\u1ea1n c\u00e0i xong b\u1ea1n m\u1edf tr\u00ecnh duy\u1ec7t l\u00ean v\u00e0 \u0111\u00e1nh \u0111\u1ecba ch\u1ec9 :http:\/\/localhost:3000 n\u1ebfu n\u00f3 hi\u1ec7n th\u1ecb ra m\u00e0n h\u00ecnh ch\u00e0o m\u1eebng c\u1ee7a Ruby on rails th\u00ec coi nh\u01b0 b\u1ea1n \u0111\u00e3 c\u00e0i \u0111\u1eb7t xong:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-354\" src=\"https:\/\/thietkewebdalat.net\/blog\/wp-content\/uploads\/2017\/09\/rails-running.png\" alt=\"\" width=\"496\" height=\"726\" srcset=\"https:\/\/thietkewebdalat.net\/blog\/wp-content\/uploads\/2017\/09\/rails-running.png 496w, https:\/\/thietkewebdalat.net\/blog\/wp-content\/uploads\/2017\/09\/rails-running-205x300.png 205w, https:\/\/thietkewebdalat.net\/blog\/wp-content\/uploads\/2017\/09\/rails-running-287x420.png 287w\" sizes=\"auto, (max-width: 496px) 100vw, 496px\" \/>B\u00e2y gi\u1edd s\u1ebd \u0111\u1ebfn th\u1eafc m\u1eafc c\u1ee7a c\u00e1c b\u1ea1n sau m\u00ecnh c\u00e0i xong th\u00ec th\u01b0 m\u1ee5c d\u1ef1 \u00e1n c\u1ee7a m\u00ecnh n\u00f3 n\u1eb1m \u1edf \u0111\u00e2u, n\u00f3 s\u1ebd n\u1eb1m trong \u0111\u01b0\u1eddng d\u1eabn n\u00e0y : C:\\Users\\[YOUR_USER]\\AppData\\Local v\u00e0 \u0111\u1ec3 truy c\u1eadp \u0111\u01b0\u1eddng d\u1eabn n\u00e0y tr\u00ean Ubuntu th\u00ec b\u1ea1n s\u1eed d\u1ee5ng l\u1ec7nh : <strong>\/mnt\/c <\/strong>th\u00ec s\u1ebd v\u00e0o \u0111\u01b0\u1ee3c th\u01b0 m\u1ee5c d\u1ef1 \u00e1n c\u1ee7a m\u00ecnh.<\/li>\n<li style=\"list-style-type: none;\">\u0110\u1ebfn th\u1eafc m\u1eafc th\u1ee9 hai l\u00e0 l\u00e0m sao c\u00f3 th\u1ec3 code \u0111\u01b0\u1ee3c, b\u00e2y gi\u1edd m\u00ecnh s\u1ebd c\u00e0i <strong>Visual Studio Code <\/strong>v\u00e0o \u0111\u1ec3 code nh\u00e9 sau khi c\u00e0i \u0111\u1eb7t xong th\u00ec m\u1edf th\u01b0 m\u1ee5c d\u1ef1 \u00e1n l\u00ean, ti\u1ebfp theo b\u1ea1n s\u1ebd c\u00e0i shell \u0111\u1ec3 c\u00f3 th\u1ec3 ch\u1ea1y \u0111\u01b0\u1ee3c b\u1ea1n \u1ea5n <code>Ctrl<\/code>\u00a0+\u00a0<code>Shift<\/code>\u00a0+\u00a0<code>P<\/code> \u0111\u1ec3 n\u00f3 m\u1edf m\u00e0n h\u00ecnh \u0111\u1ec3 c\u00e0i \u0111\u1eb7t l\u00ean :<\/li>\n<\/ol>\n<\/li>\n<li style=\"list-style-type: none;\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-355\" src=\"https:\/\/thietkewebdalat.net\/blog\/wp-content\/uploads\/2017\/09\/command-palette.png\" alt=\"\" width=\"625\" height=\"105\" srcset=\"https:\/\/thietkewebdalat.net\/blog\/wp-content\/uploads\/2017\/09\/command-palette.png 625w, https:\/\/thietkewebdalat.net\/blog\/wp-content\/uploads\/2017\/09\/command-palette-300x50.png 300w\" sizes=\"auto, (max-width: 625px) 100vw, 625px\" \/>Ti\u1ebfp \u0111\u1ebfn b\u1ea1n \u0111\u00e1nh <strong>Enter<\/strong> v\u00e0 ch\u1ecdn <strong>WSL Bash:<\/strong><\/li>\n<li style=\"list-style-type: none;\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-356\" src=\"https:\/\/thietkewebdalat.net\/blog\/wp-content\/uploads\/2017\/09\/select-wsl-bash.png\" alt=\"\" width=\"619\" height=\"166\" srcset=\"https:\/\/thietkewebdalat.net\/blog\/wp-content\/uploads\/2017\/09\/select-wsl-bash.png 619w, https:\/\/thietkewebdalat.net\/blog\/wp-content\/uploads\/2017\/09\/select-wsl-bash-300x80.png 300w\" sizes=\"auto, (max-width: 619px) 100vw, 619px\" \/>Sau \u0111\u00f3 b\u1ea1n v\u00e0o menu Terminal-&gt; new Terminal n\u00f3 s\u1ebd ra m\u00e0n h\u00ecnh nh\u01b0 sau :<\/li>\n<li style=\"list-style-type: none;\">\n<ol>\n<li style=\"list-style-type: none;\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-357\" src=\"https:\/\/thietkewebdalat.net\/blog\/wp-content\/uploads\/2017\/09\/wsl-terminal.png\" alt=\"\" width=\"709\" height=\"265\" srcset=\"https:\/\/thietkewebdalat.net\/blog\/wp-content\/uploads\/2017\/09\/wsl-terminal.png 709w, https:\/\/thietkewebdalat.net\/blog\/wp-content\/uploads\/2017\/09\/wsl-terminal-300x112.png 300w, https:\/\/thietkewebdalat.net\/blog\/wp-content\/uploads\/2017\/09\/wsl-terminal-696x260.png 696w\" sizes=\"auto, (max-width: 709px) 100vw, 709px\" \/>v\u00e0 nh\u01b0 th\u1ebf b\u1ea1n c\u00f3 th\u1ec3 \u0111\u00e1nh l\u1ec7nh rails server \u0111\u1ec3 ch\u1ea1y.<\/li>\n<\/ol>\n<\/li>\n<li style=\"list-style-type: none;\">Coi nh\u01b0 xong ph\u1ea7n c\u00e0i \u0111\u1eb7t ROR tr\u00ean Ubuntu c\u1ee7a win 10 nh\u00e9.<\/li>\n<li style=\"list-style-type: none;\">N\u1ebfu b\u1ea1n n\u00e0o l\u00e0m kh\u00f4ng hi\u1ec3u ho\u1eb7c kh\u00f4ng \u0111\u01b0\u1ee3c th\u00ec comment l\u1ea1i r\u1ed3i m\u00ecnh s\u1ebd l\u00e0m clip h\u01b0\u1edbng d\u1eabn chi ti\u1ebft nh\u00e9.<\/li>\n<\/ol>\n","protected":false},"excerpt":{"rendered":"<p>Ch\u00e0o c\u00e1c b\u1ea1n: H\u00f4m nay m\u00ecnh s\u1ebd h\u01b0\u1edbng d\u1eabn c\u00e1c b\u1ea1n c\u00e1ch c\u00e0i \u0111\u1eb7t ruby on rails tr\u00ean ubuntu c\u1ee7a win 10: \u0110\u1ea7u ti\u00ean c\u00e1c b\u1ea1n c\u00e0i \u0111\u1eb7t ubuntu nh\u00e9, b\u1ea1n l\u00e0m theo c\u00e1c b\u01b0\u1edbc sau: 1. Install WSL: B\u1ea1n v\u00e0o microsoft store t\u00ecm t\u1eeb kh\u00f3a ubuntu th\u00ec n\u00f3 s\u1ebd ra nh\u01b0 h\u00ecnh v\u00e0 m\u00ecnh [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":352,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"amp_status":"","footnotes":""},"categories":[134],"tags":[131,133,132],"class_list":{"0":"post-160","1":"post","2":"type-post","3":"status-publish","4":"format-standard","5":"has-post-thumbnail","7":"category-ruby","8":"tag-cai-dat-ruby","9":"tag-cai-dat-ruby-on-rails-tren-ubuntu-win10","10":"tag-cai-dat-ruby-tren-win-10"},"_links":{"self":[{"href":"https:\/\/thietkewebdalat.net\/blog\/wp-json\/wp\/v2\/posts\/160","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/thietkewebdalat.net\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/thietkewebdalat.net\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/thietkewebdalat.net\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/thietkewebdalat.net\/blog\/wp-json\/wp\/v2\/comments?post=160"}],"version-history":[{"count":4,"href":"https:\/\/thietkewebdalat.net\/blog\/wp-json\/wp\/v2\/posts\/160\/revisions"}],"predecessor-version":[{"id":351,"href":"https:\/\/thietkewebdalat.net\/blog\/wp-json\/wp\/v2\/posts\/160\/revisions\/351"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/thietkewebdalat.net\/blog\/wp-json\/wp\/v2\/media\/352"}],"wp:attachment":[{"href":"https:\/\/thietkewebdalat.net\/blog\/wp-json\/wp\/v2\/media?parent=160"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/thietkewebdalat.net\/blog\/wp-json\/wp\/v2\/categories?post=160"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/thietkewebdalat.net\/blog\/wp-json\/wp\/v2\/tags?post=160"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}