12/08/2018, 15:18

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 !!!

0