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宝石を解析するためのスプレッドシートの宝石を使用してい
ソリューション
を解決。私は、ユーザーのためのモデルを考案使用しているため、SQLは、あなたのDBに何かをする可能性があるので、ここでファイルをインポートするためのコントローラは、SQLファイルをインポートする
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
"*これを行うための最善の方法を示すコードをいくつか教えてもらえますか?"いいえ、それはSOのためではありません。最初に行ってから、それが機能しない場合は、より具体的な質問に戻ってください。 – eggyal
ようこそStackOverflowへ!すべての便利な答えをupvoteすることを忘れないでください。他人の質問への回答を含める。あなた自身の質問に対する最良の答えを受け入れるかどうかを確認してください。 –