Tôi có một câu hỏi khá đơn giản. Nhưng đã không tìm thấy một giải pháp cho đến nay.Rails 4 - Tham số mạnh - Đối tượng lồng nhau
Vì vậy, đây là chuỗi JSON tôi gửi đến máy chủ:
{
"name" : "abc",
"groundtruth" : {
"type" : "Point",
"coordinates" : [ 2.4, 6 ]
}
}
Sử dụng phương pháp giấy phép mới, tôi đã có:
params.require(:measurement).permit(:name, :groundtruth)
này ném không có lỗi, nhưng sự xâm nhập cơ sở dữ liệu được tạo ra chứa null
thay vì giá trị trung gian.
Nếu tôi chỉ cần đặt:
params.require(:measurement).permit!
Tất cả những gì có được của lưu như mong đợi, nhưng tất nhiên, điều này giết chết sự an toàn được cung cấp bởi các thông số mạnh mẽ.
Tôi đã tìm thấy giải pháp, cách cho phép mảng, chứ không phải một ví dụ đơn lẻ sử dụng các đối tượng lồng nhau. Điều này phải có thể bằng cách nào đó, vì nó phải là một trường hợp sử dụng khá phổ biến. Vì vậy, làm thế nào nó hoạt động?
có một cái nhìn vào này http://stackoverflow.com/questions/14483963/rails-4-0 -strong-parameters-lồng nhau-thuộc tính-với-a-key-rằng-điểm-to-a-băm –
@vinodadhikary Nó đã được chính xác ... Tôi nghĩ rằng OP là nhầm lẫn. Như kỳ lạ khi nó âm thanh khi bạn muốn cho phép các thuộc tính lồng nhau bạn chỉ định các thuộc tính của đối tượng lồng nhau trong mảng. Mặt khác, nếu bạn muốn lồng ghép nhiều đối tượng thì bạn quấn nó bên trong một băm… xem http: //api.rubyonrails.org/classes/ActionController/Parameters.html # method-i-permit và https://github.com/rails/rails/blob/master/actionpack/lib/action_controller/metal/strong_parameters.rb#L246-L247 – j03w
@ j03w , Cảm ơn bạn đã liên kết đến nguồn. Bây giờ đã rõ rồi. Bạn nên thêm một câu trả lời ở đây cho phát hiện này vì tôi nghĩ rằng nó sẽ giúp rất nhiều người khác. – vee