Я новичок в Rails и выяснил, как экспортировать результаты из моей базы данных, но у меня возникли проблемы с созданием новых записей из файла CSV. С помощью кода, приведенного ниже, я хочу иметь возможность импортировать файл CSV и заполнить последние два столбца данными сеанса от пользователя. Сейчас я просто вставил статический номер, чтобы попытаться заставить это работать. В настоящее время я получаю сообщение «Не могу преобразовать ActionDispatch :: Http :: UploadedFile в строку» как сообщение об ошибке
CSV ДОКУМЕНТ
имя, задачи, expected_results, require_id
Имя теста 1, Открыть файл, Открыть, т
Имя теста 2, чтение файла, чтение, т
Имя теста 3, Закрыть файл, Закрыть, f
CONTROLLER
def csv_import
file = params[:file]
FasterCSV.foreach(file,{:headers => true, :row_sep => :auto}) do |row|
Script.create!(:name => row[0],
:task => row[1],
:expected_results => row[2],
:require_id => row[3],
:department_id => 1,
:category_id => 1)
end
end
VIEW
<%=form_tag '/script_admin/csv_import', :multipart => true do%>
<%= file_field_tag "file" %><br/>
<%= submit_tag("Import") %>
<% end %>
БД МИГРАЦИЯ
class CreateScripts < ActiveRecord::Migration
def self.up
create_table :scripts do |t|
t.integer :department_id, :null => false
t.integer :category_id, :null => false
t.string :name, :null => false
t.string :task, :null => false
t.string :expected_results, :null => false
t.boolean :require_id, :null => false, :default => "t"
t.timestamps
end
end
def self.down
drop_table :scripts
* +1016 * конец
конец
Любая помощь в этом может быть оценена
~ Kyle