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

Như vậy, bạn đã có một cái nhìn tổng quan trong việc cài đặt và sử dụng Cell trong Rails

Thanks for reading!

0