Gem GON
Theo chúng ta thấy mỗi lần muốn gửi dữ liệu từ controller ra view thì rất khó khăn trong việc truyền biến vào file javascript, và đây 1 thư viện giúp chúng ta làm điều đó. Gem gon cho phép bạn gửi dữ liệu đến các tệp Javascript của bạn. Điều này có nghĩa là bạn có thể tránh phải gọi các hàm JS ...
Theo chúng ta thấy mỗi lần muốn gửi dữ liệu từ controller ra view thì rất khó khăn trong việc truyền biến vào file javascript, và đây 1 thư viện giúp chúng ta làm điều đó.
Gem gon
cho phép bạn gửi dữ liệu đến các tệp Javascript của bạn. Điều này có nghĩa là bạn có thể tránh phải gọi các hàm JS phức tạp trong chế độ xem và sử dụng ERB để phân tích cú pháp Ruby trong các chức năng này.
cài đặt
gem "gon"
Sau đó bundle install. Tiếp tục chúng ta thêm dòng này "<%= include_gon %>" vào header
<html> <head> ... <%= include_gon %> .... </head> ... </html>
Bây giờ chúng ta sẽ gọi nó như thê nào. Vd: controller
class Members::RegisterCoursesController < ApplicationController .... def index gon.courses << Course.all end .... end
view
<script> gon.courses.forEach(function(val) { console.log(val); // val là 1 object nên giờ muốn lấy thuộc tính chỉ đơn giản là val.name , val.id ,.... } </script>
Hoặc các bạn muốn lấy dữ liệu trực tiếp ở file js register_courses.js
$(document).ready(function() { gon.courses.forEach(function(val) { console.log(val); } });
Qua đó cho thấy sự tương tác từ controller ra javascript thực đơn giản, chúng ta có thể gửi ra 1 chuỗi, mảng, hay thậm chí 1 object.... nên việc sử lý trở nên đơn giản
Link tham khảo: https://github.com/gazay/gon Chúc các bạn thành công !!!