2015-05-08 2 views
1

В моем приложении я создаю форму, которая загружает несколько документов. Теперь я разместил форму с двумя загружаемыми документами, но не смог сохранить в базе данных из-за ошибки. Но я получаю все параметры, как указано выше. Пожалуйста, помогите мне решить эту проблему.Параметр unpermitted: рельсы файла 4

В контроллере:

def create 
    @sr_document = SrDocument.new(sr_document_params) 
end 

def sr_document_params 
    params.require(:sr_document).permit(:file_type, :file, :service_request_id, :file_file_name, :file_content_type, :file_file_size) 
end 

В журнале:

"sr_document" => { "файл" => [

@ временный файл = #, @ original_filename = «Reliance Web-Chat.pdf», @ content_type = «application/pdf», @ headers = «Content-Disposition: form-data; name = \" sr_document [файл] [] \ "; имя файла = \ "Reliance Web-Chat.pdf \" \ г \ nContent-Type: применение/PDF \ г \ п ">

@tempfile = # \ @ original_filename =" Flipkart.pdf» , @ content_type = "application/pdf", @ headers = "Content-Disposition: form-data; name = \ "sr_document [файл] [] \"; имя файла = \ "Flipkart.pdf \" \ г \ nContent-Type: применение/PDF \ г \ п ">

]}

+0

Какая ошибка? – Sontya

+0

Параметр unpermitted: файл –

+0

'file' - это поле в таблице' sr_documents'? можете ли вы показать нам «форму»? – Sontya

ответ

3

Вы получаете массив файлов, так что я думаю, что вы получать вопрос: Try, чтобы разрешить свой атрибут файла, как:

def sr_document_params 
    params.require(:sr_document).permit(:file_type, :file => [], :service_request_id, :file_file_name, :file_content_type, :file_file_size) 
end 
+0

Синтаксическая ошибка в: params.require (: sr_document) .permit (файл: []) –

+0

Попробуйте сделать это «params.require (: sr_document) .permit!» –

+0

Параметры массива и хэша должны быть в конце, : service_request_id,: file_file_name, ... ', хотя похоже, что другие параметры не используются. –

1

Эти файлы хранятся в массиве и информации файла как file_content_type, .. атрибуты каждого файла, так что вы не можете получить его, как это . Попробуйте:

def create 
    sr_documents = [] 
    sr_document_params[:file].each do |file| 
    sr_documents << SrDocument.new({ file_content_type: file.content_type, 
             file_size: file.size, 
             file: file }) 
    end 
end 


def sr_document_params 
    params.require(:sr_document).permit(file: []) 
end 
+0

Синтаксическая ошибка в: params.require (: sr_document) .permit (файл: []) –

Смежные вопросы