Các coder mới thường rất bỡ ngỡ khi vào dự án mới mà có các công nghệ mới, thấy mọi người dùng rất dễ dàng, còn mình thì lại chật vật đi mò mẫm tìm hiểu. Và khó khăn của mình gặp phải là ActiveModel Serializers. Sau khi tìm hiểu và sử dụng, mình thấy Serializers như bàn tay ma thuật giúp dữ liệu lấy từ active record, mình có thể nhào nặn để phù hợp với dữ liệu mình cần. Khá thú vị phải không và hữu ích đặc biệt là đối với các dự án sử dụng Rails API cần thao tác với dữ liệu kiểu Json. Vì thế bài này mình muốn chia sẻ cho những bạn mới như mình có thể tiếp cận một cách dễ hiểu nhất về nó cũng như bước đầu có thể sử dụng và custom dữ liệu cho phù hợp.
1. Dữ liệu Demo
Model Relationships
Và đây là phần nội dung trong model của chúng:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | ## app/models/user.rb class User < ApplicationRecord has_many :mountains has_many :regions end ## app/models/mountain.rb class Mountain < ApplicationRecord belongs_to :user belongs_to :region, optional: true end ## app/models/region.rb class Region < ApplicationRecord has_many :mountains belongs_to :user end |
Chúng ta sẽ bắt đầu với action
Index
và Show
trong Restful và chúng gần như giống nhau:1 2 3 4 5 6 7 8 | ## app/controllers/users_controller.rb class UsersController < ApplicationController def index render json: User.all end def show render json: User.find(params |