+2

Rails naming conventions

Bài viết này mình sẽ đề cập tới Rails naming conventions - quy ước đặt tên trong Rails. Với những bạn newbie, có thể có những thắc mắc tại sao cùng 1 đối tượng mà chỗ đặt số ít, chỗ khác là số nhiều, hay chỗ sử dụng gạch dưới , chỗ không ... Vậy chúng ta cùng tìm hiểu nhé 😃

(Trong bài viết có thể có những key word mình không dịch ra tiếng Việt để đảm bảo tính trong sáng của nó)

1. Tóm lược Ruby conventions

  • Tên Class là CamelCase
  • Methods và variables là student_case
  • Method có hậu tố là ? sẽ return về kiểu boolean (true/false)
  • Trong bài viết, ::method_name biểu thị cho 1 class method, còn #method_name là 1 instance method

2. Database

Bảng cơ sở dữ liệu của đối tượng Student, với tên bảng là số nhiều, tên cột là số ít:

Ví dụ:

+------------------------------+
| students                     |
+---------------------+--------+
| id                  | ID     |
| name                | STRING |
| email               | STRING |
+---------------------+--------+

+--------------------------+
| address                  |
+------------+-------------+
| id         | ID          |
| number     | INT         |
| street     | STRING      |
+------------+-------------+

+--------------------------+
| class                    |
+------------+-------------+
| id         | ID          |
| class_name | STRING      |
+------------+-------------+

3. Model

Tên model là số ít, và sẽ tự động sinh ra cùng với tên của bảng cơ sở dữ liệu (số nhiều)

Ví dụ:

app/models/student.rb

class Student < ActiveRecord::Base
  # This class will have these attributes: id, name, email
end

app/models/address.rb

class Address < ActiveRecord::Base
    #...
end

4. Quan hệ giữa các models

Có 3 kiểu quan hệ cơ bản là has_one, belongs_to (số ít) và has_many (số nhiều) Cụ thể ở ví dụ trông bài viết: 1 Student có 1 Address, 1 class có nhiều Student

Ví dụ:

app/models/student.rb

class Student < ActiveRecord::Base
  belongs_to :class
  has_one: address
end

app/models/class.rb

class Class < ActiveRecord::Base
  has_many :students
end

Các khóa ngoại trong database sẽ tự động được sinh ra như class_id(trong bảng student) hay student_id(trong bảng address).

5. Controller

Tên controller là số nhiều và kèm theo hậu tố Controller Các actions trong mỗi controller lần lượt là index, show, new, create, edit, update, delete.

Ví dụ:

app/controllers/students_controller.rb

StudentsController < ApplicationController
  def index
    # ...
  end
  def show
    # ...
  end
  # etc
end

6. Views

Tên của các file view sẽ đặt tương ứng theo các action trong controller với đường dẫn dạng: app/views/#{resource_name}/#{action_name}.html.erb

ví dụ:

  • app/views/students/index.html.erb
  • app/views/students/show.html.erb

Hi vọng bài viết của mình sẽ giúp các bạn mới làm quen với Rails trở nên đỡ bỡ ngỡ. Thank for watching!


All rights reserved

Viblo
Hãy đăng ký một tài khoản Viblo để nhận được nhiều bài viết thú vị hơn.
Đăng kí