2014-04-09 1 views
0

안녕하세요. 파일을 업로드하는 중에 문제가 있습니다. 저는 carrierwave를 사용하여 파일을 업로드하고 중첩 된 양식을 사용하여 사용자로부터 파일을 캡처합니다. 페이지를 제출하면 모든 것이 제대로 작동하지만 파일이 업로드되거나 데이터베이스에 저장되지 않습니다. https://gist.github.com/jpstokes/10276415레일 웨이 4에서 carrierwave와 중첩 된 형식을 사용하여 파일을 업로드하려면 어떻게해야합니까?

서버 로그

Started POST "/applicants" for 127.0.0.1 at 2014-04-09 10:20:12 -0500 
Processing by ApplicantsController#create as HTML 
Parameters: {"utf8"=>"✓", "authenticity_token"=>"N+hSir8O8GjW3Q6TEgO4i8Yg3id37G/MhJgPuIHbjhQ=", 
"applicant"=>{"fname"=>"Jason", "lname"=>"Brown", "phone"=>"555-555-5555", 
"alt_phone"=>"555-555-5555", "email"=>"[email protected]", 
"address"=>"123 ABC Lane",  "city"=>"Wonderland", "state"=>"KS", "zip"=>"12345", 
"country"=>"United States", "education"=>"High School", "salary"=>"100000", "resumes_attributes"=> 
{"0"=>{"name"=>"My resume", "attachment"=>#<ActionDispatch::Http::UploadedFile:0x007fbcceba6cc8 
@tempfile=#<Tempfile:/var/folders/4s/z8bwrnjn20b13_w1tw7lnskw0000gn/T/RackMultipart20140409-11899- 
11xnpch>, @original_filename="Document1.docx", @content_type="application/vnd.openxmlformats- 
officedocument.wordprocessingml.document", @headers="Content-Disposition: form-data;  
name=\"applicant[resumes_attributes][0][attachment]\"; filename=\"Document1.docx\"\r\nContent-Type: 
application/vnd.openxmlformats-officedocument.wordprocessingml.document\r\n">}}, "job_id"=>"1"}, 
"skills"=>[{"name"=>"PHP", "last_used"=>"04-12-2012", "years_experience"=>"3"}, {"name"=>"", 
"last_used"=>"", "years_experience"=>""}], "commit"=>"Submit"} 
Unpermitted parameters: resumes_attributes, job_id 
(0.1ms) BEGIN 
SQL (0.2ms) INSERT INTO `applicants` (`address`, `alt_phone`, `city`, `country`, `created_at`, 
`education`, `email`, `fname`, `lname`, `phone`, `salary`, `state`, `updated_at`, `zip`) VALUES 
('123 ABC Lane', '555-555-5555', 'Wonderland', 'United States', '2014-04-09 15:20:12', 'High 
School', '[email protected]', 'Jason', 'Brown', '555-555-5555', 100000, 'KS', '2014-04-09 15:20:12',  
12345) 
(0.1ms) COMMIT 
Skill Load (0.2ms) SELECT `skills`.* FROM `skills` WHERE `skills`.`name` = 'PHP' LIMIT 1 
(0.1ms) BEGIN 
SQL (0.1ms) INSERT INTO `skill_sets` (`applicant_id`, `created_at`, `last_used`, `skill_id`, 
`updated_at`, `years_experience`) VALUES (294, '2014-04-09 15:20:12', '2012-12-04', 12, '2014-04-09 
15:20:12', 3) 
(16.4ms) COMMIT 
Skill Load (0.3ms) SELECT `skills`.* FROM `skills` WHERE `skills`.`name` = '' LIMIT 1 
(0.1ms) BEGIN 
SQL (0.2ms) INSERT INTO `skill_sets` (`applicant_id`, `created_at`, `skill_id`, `updated_at`) 
VALUES (294, '2014-04-09 15:20:12', 15, '2014-04-09 15:20:12') 
(0.6ms) COMMIT 
Job Load (0.2ms) SELECT `jobs`.* FROM `jobs` WHERE `jobs`.`id` = 1 LIMIT 1 
(0.1ms) BEGIN 
SQL (0.2ms) INSERT INTO `job_applications` (`applicant_id`, `job_id`) VALUES (294, 1) 
(0.5ms) COMMIT 
Redirected to http://localhost:3000/jobs/1 
Completed 302 Found in 29ms (ActiveRecord: 19.2ms) 
+0

당신이 업로드 된 파일을 중첩 된 양식을 제출할 때 생성 된 서버 로그를 공유 할 수 있습니다 예를 들어

? –

+0

'ApplicantsController'의'permit' 관련 코드를 공유하여 제 답변을 초안을 작성할 수 있도록하십시오. –

답변

0

은 서버 로그에 따라 경찰, 경고 Unpermitted parameters: resumes_attributes, job_id있다.

여기에서해야 할 일은 ApplicantsController의 resumes_attributes 및 job_id 허가입니다.

def applicant_params 
    params.require(:applicant).permit(:fname, :lname, :phone,..., resumes_attributes: [:name, :attachment,...]) 
    end 
+0

백만 Thx! –

+0

도와 주셔서 감사합니다 :) –