2015-05-12 25 views
6

tôi cần phải cho phép một tham số trong Rails 4 trong đó có một dấu chấm trong tên của nó:Rails params mạnh mẽ với "chấm" trong tên

params băm của tôi trông giống như sau:

{ 
    "dictionary_objects.id" => [ 
    "102", "110", "106" 
    ] 
} 

tôi có thể nhận được giá trị param:

>> params['dictionary_objects.id'] 
=> [ 
[0] "102", 
[1] "110", 
[2] "106" 
] 

Nhưng khi tôi cố gắng để cho phép nó, nó trả về một băm rỗng:

>> params.permit('dictionary_objects.id') 
Unpermitted parameters: dictionary_objects.id 
=> {} 

Có ai biết làm cách nào tôi có thể cho phép các thông số có dấu chấm trong tên của nó?

Cảm ơn.

Trả lời

6

Tôi nghĩ rằng nó chỉ không cho phép nó bởi vì bạn đã có một bộ sưu tập và bạn đang cho phép nó cho phép một tham số giá trị duy nhất. Nếu bạn sử dụng:

params.permit(:'dictionary_objects.id' => []) 

thì tất cả đều tốt.

+0

Tôi không thể phê duyệt cách thông thường :) – apneadiving

+0

Nó hoạt động, cảm ơn gợi ý! – roody

2

đối với trường hợp cạnh tôi khuyên bạn nên một workaround rất hữu ích:

params.slice('dictionary_objects.id').permit! 

Vì vậy, bạn làm phím danh sách trắng và không trở thành điên vì params mạnh.


sidenote:

ray là dựng sẵn để nhận args như dictionary_object_ids cho has_many mối quan hệ, bạn có thể tận dụng để thay thế.

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