Rails naming conventions
Bài đăng này đã không được cập nhật trong 8 năm
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