Tôi có một đối tượng trong Rails có thuộc tính A, B, C, D và E. Khi truyền đối tượng này quay lại phía máy khách thông qua đối tượng JSON, cách thế nào tôi có thể nói cho bộ điều khiển đường ray chỉ bao gồm các thuộc tính A và D trong đối tượng JSON?Chỉ định các thuộc tính của đối tượng Rails được chuyển vào đối tượng JSON
Trong vòng điều khiển người dùng của tôi, mã của tôi là như sau:
@user = User.find(params[:id])
respond_to do |format|
format.html
format.json { render :json => @user}
end
Mã này hoạt động, tuy nhiên, đối tượng JSON được trả về có chứa tất cả các thuộc tính của đối tượng @user. Làm thế nào tôi có thể giới hạn các thuộc tính được bao gồm trong đối tượng JSON trước khi bất cứ điều gì được gửi lại cho khách hàng?
CẬP NHẬT: lucapette cung cấp một số thông tin cơ bản về những gì đang diễn ra đằng sau hậu trường. Kể từ khi có những lúc tôi có lẽ muốn tất cả các thuộc tính trở về, tôi đã kết thúc bằng cách sử dụng đoạn mã sau:
format.json { render :json => @user.to_json(:only => ["id"])}
Cảm ơn, lucapette. Sau khi đọc câu trả lời của bạn, tôi đã xem xét các phương thức to_json và as_json. Sau đó, tôi đã sửa đổi mã của mình như sau: format.json {render: json => @ user.to_json (: only => ["id"])}. Có vẻ như phải có một số mã thừa trong đó nhưng tôi không thể tìm thấy một cách khác để làm cho nó hoạt động. – Vee
yep, bạn cũng có thể sử dụng các tùy chọn này. Nó hoạt động tốt theo cách đó quá. Nó thực sự phụ thuộc vào tình hình bạn phải đối mặt. – lucapette