Tạo mới ứng dụng bằng Ruby on Rails

Cài đặt Rails

Kiểm tra version của Ruby hiện tại trên máy:

$ ruby -v
ruby 2.3.1p112

 

Cài Rails bằng cách chạy câu lệnh: 

$ gem install rails

 

Sau khi chạy xong, kiểm tra version của Rails đã được cài đặt bằng cách:

$ rails --version
Rails 5.1.3

Tạo mới một ứng dụng Rails

Bước đầu tiên, mở terminal, di chuyển tới thư mục cần tạo ứng dụng, chạy câu lệnh sau:

rails new blog

Thì khi đó, Rails sẽ tự động tạo ra một thư mục có tên là blog, thư mục này chứa các file và các thư mục con khác như hình bên dưới.

Di chuyển vào thư mục blog và chạy:

bundle install

Câu lệnh này dùng để cài đặt các Gems cần thiết cho ứng dụng Rails mới. Danh sách các Gem được cài đặt nằm trong file Gemfile.

Gem ở đây có thể hiểu như là các thư viện được xây dựng sẵn. Chỉ cần thêm vào ứng dụng Rails, và sử dụng theo như hướng dẫn của Gem đó.

 

Chạy ứng dụng bằng cách start Web Server lên:

rails server

 

Lúc này, nó sẽ kích hoạt Puma, một Web Server mặc định của Rails. Mở browser lên và gõ vào http://localhost:3000 bạn sẽ thấy trang web mặc định của Rails khi mới tạo ra.


 

Tạo trang Welcome cho ứng dụng

Để tạo một trang welcome trên ứng dụng của mình, thì chúng ta cần tạo ra 1 controller và 1 view.

Controller là nơi có nhiệm vụ nhận request từ người dùng và thu thập những thông tin cần thiết để cung cấp cho View.  

View có nhiệm vụ hiển thị thông tin về cho người dùng cuối. 

 

Chúng ta sẽ tạo ra một controller là Welcome với action có tên là index bằng câu lệnh như sau:

rails generate controller Welcome index

 

Lúc này, Rails sẽ tạo ra các file như sau:

create  app/controllers/welcome_controller.rb

 route  get 'welcome/index'

invoke  erb

create    app/views/welcome

create    app/views/welcome/index.html.erb

invoke  test_unit

create    test/controllers/welcome_controller_test.rb

invoke  helper

create    app/helpers/welcome_helper.rb

invoke    test_unit

invoke  assets

invoke    coffee

create      app/assets/javascripts/welcome.coffee

invoke    scss

create      app/assets/stylesheets/welcome.scss

 

Có 3 files cần quan tâm đầu tiên là:

  • app/controllers/welcome_controller.rb: Đây là welcom controller chứa action index.
class WelcomController < ApplicationController
  def index
  end
end

 

  • routes.rb: File định nghĩa toàn bộ routes của ứng dụng.
Rails.application.routes.draw do
  get 'welcom/index'

  # For details on the DSL available within this file, see http://guides.rubyonrails.org/routing.html
end

Dòng get 'welcome/index'  có nghĩa là URL của trang index sẽ là /welcome/index.

Rails Router có nhiệm vụ xác định xem controller nào đảm nhiệm việc xử lý request từ người dùng.

 

  • app/views/welcome/index.html.erb: đây là file chứa nội dung sẽ hiển thị lên cho người dùng.
<h1>Welcom#index</h1>
<p>Find me in app/views/welcom/index.html.erb</p>

Định dạng .html.erb là viết tắt của HTML with embedded Ruby, có nghĩa là bạn có thể viết Ruby chung với HTML trong file với định dạng này.

 

Mở trình duyện lên và gõ vào URL: http://localhost:3000/welcome/index, nó sẽ hiện ra trang index mà bạn vừa tạo ra ở trên.

 

Hãy thử thay đổi nội dung file app/views/welcome/index.html.erb bằng một dòng text nào đó mà bạn thích, chẳng hạn:

<h1>Welcome to my blog!</h1>

Lưu lại, reload lại trình duyệt và xem sự thay đổi.

It work!

 

Bước cuối cùng là chuyển URL của trang welcome về root URL http://localhost:3000/.

Mở file config/routes.rb lên, đổi dòng code get 'welcome/index' thành root 'welcome#index'.

File routes.rb sau khi thay đổi:

Rails.application.routes.draw do
  root 'welcome#index'

end

 

Mở trình duyệt lên và gõ vào http://localhost:3000 bạn sẽ thấy trang welcome của mình.

 

Done!!!

Chúc mừng bạn vừa tạo được một trang đơn giản cho ứng dụng của mình.

 

Kết luận

Qua bài viết này, mình đã hướng dẫn cho các bạn các bước cơ bản về:

  • Cài đặt Rails
  • Tạo mới một ứng dụng Ruby on Rails
  • Tạo một trang đơn giản trong ứng dụng Rails.
  • Nắm được các thành phần trong ứng dụng Rails: Controller, Views và Routes

Phần tiếp theo, mình sẽ trình bày về mô hình MVC (Model - View - Controller) trong Rails.

Hãy nhớ đón đọc nhé!