Tôi đang chơi xung quanh với Rails 4.x beta và cố gắng nhận các thuộc tính lồng nhau làm việc với carrierwave. Không chắc chắn nếu những gì tôi đang làm là đúng hướng. Sau khi tìm kiếm xung quanh, và sau đó cuối cùng nhìn vào nguồn đường ray và thông số mạnh mẽ tôi tìm thấy các ghi chú bên dưới.Rails 4.0 Tham số mạnh Các thuộc tính lồng nhau với một khóa trỏ đến một băm
# Note that if you use +permit+ in a key that points to a hash, # it won't allow all the hash. You also need to specify which # attributes inside the hash should be whitelisted.
Vì vậy, nó nói rằng bạn phải chỉ rõ mỗi duy nhất mỗi thuộc tính duy nhất trong có, tôi đã thử sau:
Param của ví dụ:
{"utf8"=>"✓",
"authenticity_token"=>"Tm54+v9DYdBtWJ7qPERWzdEBkWnDQfuAQrfT9UE8VD=",
"screenshot"=>{
"title"=>"afs",
"assets_attributes"=>{
"0"=>{
"filename"=>#<ActionDispatch::Http::UploadedFile:0x00000004edbe40
@tempfile=#<File:/tmp/RackMultipart20130123-18328-navggd>,
@original_filename="EK000005.JPG",
@content_type="image/jpeg",
@headers="Content-Disposition: form-data; name=\"screenshot[assets_attributes][0][filename]\"; filename=\"EK000005.JPG\"\r\nContent-Type: image/jpeg\r\n">
}
}
},
"commit"=>"Create Screenshot"}
Bộ điều khiển
def screenshot_params
params.require(:screenshot).permit(:title,
:assets_attributes => [:filename => [:@tempfile,:@original_filename,:@content_type,:@headers]
Trên đây không phải là "làm việc" (nó carrierwave không kích hoạt) tuy nhiên tôi không còn nhận được lỗi (thông số Unpermitted: filename) khi sử dụng các ví dụ lồng chuẩn mà tôi tìm thấy ví dụ:
def screenshot_params
params.require(:screenshot).permit(:title, assets_attributes: :filename)
Nếu bất cứ ai có thể giúp nó sẽ là tuyệt vời. Tôi đã không thể tìm thấy một ví dụ với lồng nhau với một khóa trỏ đến một băm.
Cảm ơn bạn đã giúp đỡ. Tôi sẽ làm, ít nhất tôi có một cách hackish xung quanh nó ngay bây giờ. – John
điều này dường như vẫn là trường hợp (đối với tôi ít nhất) trong đường ray 4.0.0rc1 và nó sucks. – courtsimas
Tôi đang gặp sự cố khi sử dụng carrierwave. Có tin gì không? – ctilley79