Cơ bản về kĩ thuật View Object trong ruby on rails
Bài đăng này đã không được cập nhật trong 8 năm
Xin chào các bạn, hôm nay mình xin được giới thiệu một kĩ thuật dùng để tối ưu code, đó chính là chỉ truyền tối đa 2 biến instance variable sang view, gọi là kĩ thuật View Object.
Ví dụ trong users_controller.rb:
class UsersController < ApplicationController
def edit
@user = User.find_by id: params[:id]
@genders = User.genders
@languages = User.languages
end
end
=> bạn truyền 3 biến @user, @genders và @languages ra view.
Đầu tiên, ở đây mình sử dụng với đối tượng là User. thì trong folder models tạo một folder với tên là supports.
Trong folder supports đó mình sẽ tạo ra các file với tên tương ứng với model hoặc có thể đặt tên theo ý mình muộn gọi ra với các thuộc tính của chủ thế đó, Ví dụ mình có thể tạo file với tên là user.rb hoặc profile_user.rb...
Bây giờ mình sẽ hướng dẫn các bạn cách triển khai kĩ thuật này, về cơ bản nội dung file user.rb sẽ như sau:
class Supports::User
attr_reader :user
def initialize user #Hàm khởi tạo biến user
@user = user
end
def genders #Hàm để mình lấy ra những thuộc tình để truyền sang view
@genders ||= User.genders
end #ngoài ra có thể thêm nhiều hàm khác với mỗi thứ mình
muốn gọi ra từ view
def languages
@languages ||= User.languages
end
end
Đã xong việc triển khai nội dung của file supports, giờ trong controller của user (users_controller.rb) gọi:
@supports = Supports::User.new @user
=> biến supports chính là biến instance thứ 2 để mình truyền vào view
Trong view mình sẽ gọi như sau để lấy ra thứ mình muốn:
@supports.genders #tương ứng với @genders
@supports.languages #tương ứng với @languages
Trên đây là bài giới thiệu cơ bản về kĩ thuật View Object của mình, các bạn có thể comment để hỏi mình thêm nếu không cấu hình được, nếu mình không đủ kĩ năng để trả lời mình sẽ cố gắng hỏi người khác để có câu trả lời cụ thể cho các bạn.
All rights reserved