2016-11-29 64 views
7

bırakılır .Raylar 5 parametreler aşağıdaki gibi görünür bir kontrolör params gönderirken ben sorun yaşıyorum

Dizilerde herhangi bir değer varsa, bu değiştirilebilir. -> 5.0.0

{ id: "1", stuff: {"A" => ["1"], "B" => ["2", "3"], "D" => ["4"]} } 

Ben Raylar 4.2.x bu sorun yükseltme içine düşüyorum: Ama anahtar "C" için, hepsi gibi "C" yanında olacak dışındaki tüm dizilerde değerler vardır ki Burada neler olduğuna dair herhangi bir önerin var mı? Ben munging parameters etrafında birkaç makale/sorunları gördüm, ama bu sorun çünkü munging çalışmalarının nasıl olduğu örnek tablosunda {person: []} kişi param tamamen düştü değil {person: nil} olur, emin değilim. GH toplumda @sgrif itibaren

cevap

6

:

Bu beklenen davranıştır. Boş bir dizisini bir HTML formu (ör. Content-Type: url-form-encoded) kullanarak kodlamanın hiçbir yolu yoktur. testlerinin Raylar 4.2'de geçmesi nedenidir, çünkü denetleyici testleri, parametrelerini kodlamadığından, doğrudan hashta 'u geçmiştir. Raylar 5'te bunları kodlar. Denetleyiciniz boş dizileri umursuyorsa, JSON istekleri ile ilgileniyor olabilirsiniz. , testinizde şu şekilde yapabilirsiniz: json. Sadece form girişi ile uğraşıyorsanız, boş bir dizi asla almayacaksınız.

benim için çalışan sona ermedi as: :json ekleme, fakat test yaptılar başında @request.headers["Content-Type"] = 'application/json' ekledi.

+0

Teşekkürler, bu başlık tweak da benim için hile yapar. Neden olduğu gibi bir ipucumuz var mı:: json çözümü çalışmıyor mu? – Andrew

+0

Daha fazla merak etmedim üzgünüm. – Luke

+0

Bunu paylaştığınız için teşekkürler! –