Rails를 통해 데이터베이스로 가져 오려는 Excel 스프레드 시트의 데이터가 있습니다. 나는 Rails 3.2.3과 Ruby 1.9.2를 사용하고있다.SQL 파일 또는 Excel 파일에서 Rails를 통해 데이터베이스로 데이터 가져 오기
데이터는 사용자 이름과 암호이며 파일 이름은 member.xlsx
입니다.
<%= form_for @member do |f| %>
<%= f.text_field :import,
:maxlength=>'50',
:style=>'width: 250px;',
:placeholder => 'browse file *.sql or *.xlsx' %>
<%= f.submit %><% end %>
내 테이블 :
create_table :members do |t|
t.string :username
t.string :password_hash
t.string :password_salt
Excel 파일 및 Excel 파일을 업로드하기위한 CarrierWave 보석을 구문 분석을 위해 내가 스프레드 시트 보석을 사용하고
솔루션
를 해결 . 나는 사용자에 대한 유증 모델을 사용하고 있기 때문에, 여기
def import
if params[:excel_file].nil?
redirect_to user_new_import_path, :flash => { :error => 'You have not selected a file'}
else
test_file = params[:excel_file]
file = ExcelUploader.new
file.store!(test_file)
book = Spreadsheet.open "#{file.store_path}"
sheet1 = book.worksheet 0
sheet1.each 1 do |row|
name = row[0]
email = row[2]
generated_password = Devise.friendly_token.first(6)
temp_password = generated_password
@user = User.create(:name => name, :email => email, :password => temp_password, :password_confirmation => temp_password)
UserMailer.password_send(@user).deliver
end
if @user.save
redirect_to users_path, :notice => "success"
else
redirect_to new_import_user_path, :flash => { :error => 'error. try again' }
end
end
end
"* 이것을 할 수있는 가장 좋은 방법을 보여줄 수있는 코드를 몇 개 줄 수 있습니까?". 아니, 그게 무슨 뜻이야. 먼저 시도한 다음 작동하지 않는 경우 더 구체적인 질문으로 되돌아 가십시오. – eggyal
StackOverflow에 오신 것을 환영합니다! 모든 유용한 대답을 upvote하는 것을 잊지 마십시오. 다른 사람들의 질문에 대한 답변 포함. 그리고 자신의 질문에 대한 최상의 답을 수락/확인하십시오. –