1

デバイスなしのアプリケーションと同じ例を参照してください:リンク

Excelファイルのインポートが成功したら、git cloneを試しました。

私はExcelファイルから電子メールとパスワードを取得するデバイス登録を試みていますが、

これはimports_controller.rb

class ImportsController < Devise::RegistrationsController
  before_filter :resource_name

def resource_name
  :user
end

def import
end

def create  
  get_file = params[:excelfile]
    file = ImportUploader.new
    file.store!(get_file)
    book = Spreadsheet.open "#{file.store_path}"
    sheet = book.worksheet 0
    @user = []
    sheet.each 1 do |row|
      u = User.new
      u.email = row[0]
      u.password = row[1]
      u.save
      @user << u
    end
        redirect_to root_path
end

import.html.erb

<%= form_tag import_path, multipart: true do %>
  <%= file_field_tag :excelfile %>
  <%= submit_tag "Import" %>
<% end %>

Excelファイルをインポートしようとすると

Started POST "/import" for 127.0.0.1 at 2013-03-30 16:23:55 +0700
Processing by ImportsController#create as HTML
  Parameters: {"utf8"=>"Γ£ô", "authenticity_token"=>"RavRmOt838/dMJ4eg1Kx4DYnWYF
TUBdqHnQIhcfkeug=", "excelfile"=>#<ActionDispatch::Http::UploadedFile:0x4e28980
 @original_filename="kkryrk.xls", @content_type="application/vnd.ms-excel", @hea
ders="Content-Disposition: form-data; name=\"excelfile\"; filename=\"kkryrk.xls
\"\r\nContent-Type: application/vnd.ms-excel\r\n", @tempfile=#<File:C:/Users/mycomp/AppData/Local/Temp/RackMultipart20130330-5724-18krlm5>>, "commit"=>"Import"}

   (1.0ms)  BEGIN
  Users Exists (2.0ms)  SELECT 1 AS one FROM `users` WHERE `users`.`emai
l` = BINARY 'email@domain.com' LIMIT 1
   (1.0ms)  ROLLBACK
Completed 500 Internal Server Error in 441ms

アプリにエラーがないので混乱しています。エラーの場所がわからないので、ロールバックします。

何か案が?

ありがとう。

4

1 に答える 1

0

解決する。私は手動でユーザーを作成しています https://github.com/plataformatec/devise/wiki/How-To:-Manage-users-through-a-CRUD-interface

def create  
  get_file = params[:excelfile]
    file = ImportUploader.new
    file.store!(get_file)
    book = Spreadsheet.open "#{file.store_path}"
    sheet1 = book.worksheet 0
    sheet1.each 1 do |row|
      email = row[0]
      temp_password = row[1]
      Pelajar.create(:email => email, :password => temp_password, :password_confirmation => temp_password)
    end
        redirect_to root_path
end
于 2013-03-30T13:28:56.297 に答える