12/08/2018, 13:01
Sử dụng cell trong Ruby on Rails
1. Giới thiệu Cell cho phép đóng gói các thành phần giao diện người dùng vào các view models. Đây là một lớp Ruby cơ bản giúp render các template. Hơn nữa, cell còn thích hợp với các mô hình hướng đối tượng, đa hình, kế thừa, nesting...Có thể sử dụng rails helper để đóng gói JS, CSS, image, ...
1. Giới thiệu
- Cell cho phép đóng gói các thành phần giao diện người dùng vào các view models. Đây là một lớp Ruby cơ bản giúp render các template. Hơn nữa, cell còn thích hợp với các mô hình hướng đối tượng, đa hình, kế thừa, nesting...Có thể sử dụng rails helper để đóng gói JS, CSS, image, simple distribution sử dụng gem hoặc rails engines.
2. Cấu trúc file
Cấu trúc các file trong cell được trình bày như sau:
app ├── cells │ ├── comment_cell.rb │ ├── comment │ │ ├── show.erb
3. Sử dụng cell
Cell được sử dụng khá đơn giản với 3 phần chính
- Class:
class CommentCell < Cell::ViewModel def show render end end
Cũng có thể gộp nhiều cell trong một view bằng cách:
class CommentCell < Cell::ViewModel def show render + render(:additional) end end
- View: file show.erb tương tự các partial view thông thường
- Render:
- Sử dụng cấu trúc sau để render
<%= cell(:comment, @comment) %> //render show
- Hoặc render các action khác kèm theo params:
<%= cell(:comment).(:index, volume: 99) %> //render index với params volume
- Render collection:
<%= cell(:comment, collection: comments, style: "awesome", volume: "loud") %>
4. Cài đặt cell
- Trong file Gemfile sử dụng:
gem "cells", "~> 4.0.0" gem "cells-erb"
- Dễ dàng cài đặt bằng lệnh bundle install như cài đặt các gem khác
- Khởi tạo cell bằng lệnh
rails generate cell comment