2013-03-09 27 views
7

Tôi đang sử dụng active_model_serializers và muốn tìm một cách để bao gồm các thuộc tính tất cả của mô hình theo mặc định và sau đó sử dụng một cái gì đó như thế nàyLàm cách nào để sử dụng active_model_serializers để bao gồm theo mặc định tất cả các thuộc tính và lọc chúng?

 exclude :date_created, :first_name 

để xác định những người mà tôi không cần.

Cho đến bây giờ tôi không tìm thấy một cách để xác định các thuộc tính xuất khẩu bên cạnh một trong các tài liệu và đó được thực hiện bằng cách liệt kê tất cả các thuộc tính cần thiết:

 attributes :title, :body 

Trả lời

8

Bạn có thể làm một cái gì đó giống như về vấn đề này mô hình serializer của bạn (có tính đến một ví dụ về người dùng như mô hình):

class UserSerializer < ApplicationModelSerializer 
    attributes(*User.attribute_names.map(&:to_sym)) 
end 

thông tin thêm về attribute_names ActiveRecord có thể được tìm thấy ở đây: http://apidock.com/rails/ActiveRecord/AttributeMethods/attribute_names

+1

Tha nk bạn. Các giải pháp cuối cùng sẽ là: 'thuộc tính (* (User.attribute_names - [" date_created "," first_name "]) .map (&: to_sym))' – tavi

+0

Tôi nhận được một lỗi cho điều này, xin tham khảo câu trả lời của tôi ở đây: http : //stackoverflow.com/a/27701138/243797 – xhh

+0

thật không may 'thuộc tính' không chấp nhận một mảng làm đầu vào: ( – Tilo