2012-09-02 2 views
0

아래 코드를 사용하여 시드 데이터를로드 했으므로 문제가 없습니다. 그런 다음 두 개의 열을 추가해야했는데 다음 단계를 사용했지만 두 개의 새 열 시드 데이터를 테이블에 연결하지 않았습니다. 무엇이 잘못 되었습니까?Rails 시드 마이그레이션 후 데이터가 제대로로드되지 않습니다.

단계 : 모델에서 해당 attr_accessible 확인

  1. 마이그레이션에게
  2. 를 사용하여 두 개의 열을 추가
  3. 된 CSV는
  4. 변경에게를 연결하는 seed.rb 파일을 파일을 새로운 CSV로 파일을 교체 새로운 데이터
  5. 실행 레이크 dB : 씨앗

Seed.rb

require 'csv' 

Model.delete_all 
CSV.foreach("#{Rails.root}/lib/data/model.csv") do |row| 
    Model.create!(:model_number => row[0], :areq => row[1], :length => row[2], :width => row[3], :depth => row[4], :material => row[5], :frame => row[6], :edge => row[7], :tubes => row[8], :tube_length => row[9]) 
end 

Schema.rb

create_table "models", :force => true do |t| 
    t.string "model_number" 
    t.float "areq" 
    t.float "length" 
    t.float "width" 
    t.float "depth" 
    t.string "material" 
    t.string "frame" 
    t.float "edge" 
    t.datetime "created_at", :null => false 
    t.datetime "updated_at", :null => false 
    t.float "tubes" 
    t.float "tube_length" 
end 
+0

데이터가 전혀 저장되지 않고 새 열이 누락되었거나 전체 행이 누락 되었습니까? 새로운 속성의 철자가 맞습니까? –

+0

예, 데이터가 저장되고 있습니다. 두 개의 새 열이 누락되었습니다. 'created_at'및 'updated_at'열이 두 개의 새로운 열 앞에 오는 사실과 관련이 있습니까? 나는 그들의 위치를 ​​바꾸려고 노력했지만 여전히 작동하지 않았다. – sacshu

+0

아니, 그건 정상이다. 콘솔에서 실행 해 보셨습니까? –

답변

1

캔트 번

이 테이블의 열 정보를 갱신해야

는 시드 파일 위에 Model.reset_column_information을보십시오이 100 % 작동 할 말 .

require 'csv' 

Model.reset_column_information 

Model.delete_all 
#...... 

적절한 model.csv가로드되고 있는지 확인하고 8 열과 9 열이 모두 10 열에 있음을 확인하십시오.

+0

작동하지 않았지만 고맙다 – sacshu

+0

'model 테이블'을'database'에서 스키마 하나가 아니라'rails console'의'Model.new.inspect'에 추가 할 수 있습니까 – PriteshJ

+0

당신이 무엇인지 확실하지 않습니다. "# <모델 ID : nil, model_number : nil, areq : nil, 길이 : nil, 너비 : nil, 깊이 : nil, 재질 : nil, 프레임 : nil, 가장자리 : nil , created_at : nil, updated_at : nil, tubes : nil, tube_length : nil> " – sacshu

관련 문제