6

Tôi nghĩ rằng tôi có một trường hợp rất cơ bản khi tôi đang sử dụng rabl trở về JSON cho các phương pháp điều khiển RESTful tiêu chuẩn ...có điều kiện bao gồm các nút con với RABL

Đầu tiên chúng ta hãy nói rằng tôi có một điển hình để nhiều mối quan hệ với phụ huynh và trẻ em (giả sử khách hàng và các tài khoản):

class Customer < ActiveRecord::Base 
    has_many :accounts 
end 

Trong điều khiển của tôi cho khách hàng, tôi đã chỉ mục và chỉnh sửa - chỉ số mà tôi chỉ muốn trả lại tất cả khách hàng (KHÔNG tài khoản) và chỉnh sửa nơi tôi muốn quay trở lại một Khách hàng cụ thể với tất cả Tài khoản của họ. Với chỉ mục tôi không muốn trả lại các tài khoản vì lý do hiệu suất rõ ràng (N + 1).

Trong rabl tôi, tôi có như sau:

#index.rabl (for listing all customers) 
collection :@customers 
extends "customers/_customer" 

#edit.rabl (for editing a single customer) 
object :@customer 
extends "customer/_customer" 

Tôi tái sử dụng _customer.rabl cho cả các chỉ số và chỉnh sửa.

#_customer.rabl 
object :@customer 
attributes :name, ...... 

if @include_accounts 
    child :accounts do 
    extends "accounts/_account" 
    end 
end 

tôi đặt @include_accounts trong chỉnh sửa của tôi (điều khiển) và không phải là chỉ số - nhưng điều này không làm việc - cơ bản var dụ ở đây (@include_accounts) không bao giờ được thông qua xuống. Mô hình chính xác để thực hiện điều này là gì?

+0

Bạn đang sử dụng phiên bản nào của đá quý, 'rabl' hoặc' rabl-rails'? – drewinglis

+0

rabl-rails 0.3.1. –

Trả lời

3

Mặc dù đá quý rails-rabl tuyên bố nó nhanh hơn, tôi thấy rằng các mẫu không linh hoạt cho các biểu thức có điều kiện - xem rabl-rails readme re: instance variables.

+1

Cảm ơn bạn. Tôi chuyển sang đá quý rabl và tất cả mọi thứ đã làm việc như một say mê. –

Các vấn đề liên quan