У меня есть следующие задачи грабли и контроллер пользователь им пытается загрузить пользователей в базу данных из CSV, используя create
действие следующим образом:рубин-на-рельсы Создать запись из Rake Task
Библиотека/задач/import_users_csv. рейк:
desc "Import Users from csv file"
task :import_users => [:environment] do
file = "db/users.csv"
CSV.foreach(file, :headers => true) do |row|
User.create(
:name => row[1],
:email => row[2],
:password => row[3],
:password_confirmation => row[4],
:admin => row[5],
:role => row[6]
)
end
end
users_controller.rb:
def create
@user = User.new(user_params)
if @user.save
flash[:success] = "User " + @user.name.to_s + " sucessfully created"
redirect_to @user
else
render 'new'
end
end
def user_params
params.require(:user).permit(:name, :email, :password, :password_confirmation, :role, :admin)
end
, к сожалению, когда я пытаюсь запустить задачу (rake import_users_csv:import_users
) я получаю ошибку дону t знать, как построить задачу 'import_users_csv: import_users'
Спасибо! это устраняет ошибку, к сожалению, задача, похоже, ничего не делает. – user2732663
@ user2732663 А, вы используете ': headers => true'. Это делает «row» хешем, поэтому вам нужно использовать значения заголовка для доступа к содержимому ячеек. –