1. Giới thiệu Ruby on Rails.
Ruby On rails (RoR) là một Framework mã nguồn mở miễn phí cho phép phát triển ứng dụng Web, được phát triển bởi David Heinemeier Hansson, phiên bản đầu tiên của Ruby on Rails được giới thiệu ra cộng đồng vào năm 2015.
Ruby On Rails được ra đời một cách hoàn hảo dành cho những ai luôn “mải miết đi tìm” câu trả lời: tại sao những lập trình viên luôn tìm mọi cách để phát triển những phần mềm, ứng dụng Web, … để người sử dụng được thuận tiện nhất, nhưng lại không “thuận tiện” cho người lập trình mỗi khi chương trình càng đơn giản thì bên trong nó lại càng phức tạp, khó chỉnh sửa khi cần thiết, làm cho công việc của người lập trình viên “cảm thấy mệt mỏi” hơn. Ruby On Rails đã trả lời được câu hỏi đó.
Ruby nhìn phía ngoài thì đơn giản nhưng rất phức tạp bên trong, giống như cơ thể con người vậy.
Yukihiro “Matz” Matsumoto
2. Cài đặt môi trường
Lý do sử dụng Ubuntu để cài đặt vì phần lớn code chúng ta viết sẽ chạy trên máy chủ Linux. Ubuntu là một trong những bản phân phối Linux dễ sử dụng nhất với nhiều tài liệu hướng dẫn, bạn có thể tham khảo thêm cách cài đặt trên Fedora hay Centos.
Trong bài viết này chúng ta sẽ thực hiện cài đặt trên Ubuntu 18.04 Bionic Beaver (64-bit), qúa trình cài đặt diễn ra trong khoảng 30 phút.
2.1 Cài đặt Ruby
Hiện tại 2.6.1 là version mới nhất, bạn có thể kiểm tra các vesion ở đây
Bước đầu tiên là cài đặt một số packets cần thiết cho Ruby và Rails.
curl -sL https://deb.nodesource.com/setup_8.x | sudo -E bash -
curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | sudo apt-key add -
echo "deb https://dl.yarnpkg.com/debian/ stable main" | sudo tee /etc/apt/sources.list.d/yarn.list
sudo apt-get update
sudo apt-get install git-core curl zlib1g-dev build-essential libssl-dev libreadline-dev libyaml-dev libsqlite3-dev sqlite3 libxml2-dev libxslt1-dev libcurl4-openssl-dev software-properties-common libffi-dev nodejs yarn
Có 3 cách để cài đặt RoR, đó là sử dụng rbenv
, rvm
, hay từ source.
1. Sử dụng rbenv
Đầu tiên bạn phải cài đặt rbenv
và ruby-build
:
cd
git clone https://github.com/rbenv/rbenv.git ~/.rbenv
echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.bashrc
echo 'eval "$(rbenv init -)"' >> ~/.bashrc
exec $SHELL
git clone https://github.com/rbenv/ruby-build.git ~/.rbenv/plugins/ruby-build
echo 'export PATH="$HOME/.rbenv/plugins/ruby-build/bin:$PATH"' >> ~/.bashrc
exec $SHELL
rbenv install 2.6.1
rbenv global 2.6.1
ruby -v
2. Sử dụng rvm
sudo apt-get install libgdbm-dev libncurses5-dev automake libtool bison libffi-dev
gpg --keyserver hkp://keys.gnupg.net --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3 7D2BAF1CF37B13E2069D6956105BD0E739499BDB
curl -sSL https://get.rvm.io | bash -s stable
source ~/.rvm/scripts/rvm
rvm install 2.6.1
rvm use 2.6.1 --default
ruby -v
Sau khi cài xong RVM, khởi động lại bằng câu lệnh sau đây
source ~/.rvm/scripts/rvm
Khởi động RVM khi reboot hệ thống bằng lệnh
echo "source $HOME/.rvm/scripts/rvm" >> ~/.bashrc
3. Cài đặt từ Source
wget http://ftp.ruby-lang.org/pub/ruby/2.6/ruby-2.6.1.tar.gz
tar -xzvf ruby-2.6.1.tar.gz
cd ruby-2.6.1/
./configure
make
sudo make install
ruby -v
Tiếp đó cài đặt thêm gem Bundler
gem install bundler
Đối với rbenv, chạy lệnh rbenv rehash
sau khi cài xong Bundler
Cấu hình Git
git config --global user.name "YOUR NAME"
git config --global user.email "[email protected]"
2.2. Cài đặt Rails
Ruby on Rails đòi hỏi phải có JavaScript runtime để biên dịch Rails asset pipeline. Đó là lý do chúng ta sẽ sử dụng Nodejs
curl -sL https://deb.nodesource.com/setup_8.x | sudo -E bash -
sudo apt-get install -y nodejs
Cài đặt Rails, ở đây mình sẽ dùng version 5.2.3, kiểm tra bản mới nhất tại đây
gem install rails -v 5.2.3
Nếu bạn đang sử dụng rbenv, bạn cần chạy lệnh sau:
rbenv rehash
Chạy lệnh rails -v để đảm bảo rằng bạn đã cài đặt mọi thứ chính xác:
rails -v
# Rails 5.2.3
Vì một số lý do nào đó khiến cho việc cài đặt bị lỗi, có thể môi trường của bạn có thể không được thiết lập đúng.
2.3. Cài đặt nâng cao
Rails sẽ mặc định sử dụng sqlite3 để kết nối tới database, nếu muốn dùng MySQL hay PostgreSQL bạn cần phải cài thêm một số packets sau.
Để cài MySQL
sudo apt-get install mysql-server mysql-client libmysqlclient-dev
Gói libmysqlclient-dev
cung cấp một số thư viện để biên dịch gem mysql2
dùng để kết nối tới MySQL.
Trong quá trình cài đặt sẽ yêu cầu password cho tài khoản root
Khởi động dịch vụ MySQL và tự chạy mỗi khi khởi động hệ thống.
systemctl start mysql
systemctl enable mysql
Tạo tài khoản có tên admin để phát triển ứng dụng và cũng để kiểm tra trạng thái MySQL, thay admin_password bằng mật khẩu bạn muốn đặt.
CREATE USER 'admin'@'localhost' IDENTIFIED BY 'admin_password';
GRANT ALL PRIVILEGES ON *.* TO 'admin'@'localhost' WITH GRANT OPTION;
CREATE USER 'admin'@'%' IDENTIFIED BY 'admin_password';
GRANT ALL PRIVILEGES ON *.* TO 'admin'@'%' WITH GRANT OPTION;
FLUSH PRIVILEGES;
quit;
Để xem cách cấu hình MySQL vui lòng tham khảo thêm tại đây
Cài đặt PostgreSQL
sudo sh -c "echo 'deb http://apt.postgresql.org/pub/repos/apt/ xenial-pgdg main' > /etc/apt/sources.list.d/pgdg.list"
wget --quiet -O - http://apt.postgresql.org/pub/repos/apt/ACCC4CF8.asc | sudo apt-key add -
sudo apt-get update
sudo apt-get install postgresql-common
sudo apt-get install postgresql-9.5 libpq-dev
Khởi động dịch vụ Postgres và tự chạy mỗi khi khởi động hệ thống.
systemctl start postgresql
systemctl enable postgresql
Sau khi cài đặt postgres xong, bạn cần làm theo các bước sau để tạo user có quyền tạo databases. Thay thế chris
bằng user của bạn.
sudo -u postgres createuser chris -s
# Nếu muốn đặt mật khẩu cho user, nhập: sudo -u postgres psql
postgres=# \password chris
Tạo app mới.
Các bước cài đặt cơ bản đã xong, sau đây chúng ta sẽ thử tạo app mới
#### SQLite sẽ được sử dụng (mặc định)
rails new myapp
#### Nếu dùng MySQL
rails new myapp -d mysql
#### Dùng Postgres
rails new myapp -d postgresql
cd myapp
# Tạo Database mới
rails db:create
Bạn phải cấu hình lại nội dung file config/database.yml để có thể kết nối đến database, có thể tham khảo cách cấu hình bên dưới.
Đối với MySQL
default: &default
adapter: mysql2
encoding: utf8
pool: 5
username: admin
password: admin_password
development:
<<: *default
database: myapp_dev
production:
<<: *default
database: myapp_db
Đối với Postgres
default: &default
adapter: postgresql
encoding: utf8
pool: 5
user: postgres
password: postgres
development:
<<: *default
host: localhost
database: myapp_db
production:
<<: *default
database: myapp
Khởi động server rails
rails server
Sau đó bạn truy cập vào http://localhost:3000
Tham khảo: https://gorails.com