Ruby-on-Rails从Rake任务创建记录

用户名

我有以下rake任务和用户控制器,我尝试使用以下create操作从csv将用户加载到数据库中

lib / tasks / import_users_csv.rake:

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)时出现错误,不知道如何构建任务'import_users_csv:import_users'

用户名

您是否在正确的名称空间中执行了任务?运行任务的方式,它必须位于:import_users_csv名称空间中:

namespace :import_users_csv do

  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
end

如果您不想要名称空间,则应该可以rake import_usersrake -T看的耙任务列表,您可以运行。您应该会在此处看到您的列表。

编辑:

CSV.foreach(file, :headers => true) do |row|调用实际上将为您返回Hash键,该键是标题行中的值。如果您具有以下CSV文件:

Foo,Bar,Baz
1,2,3
4,5,6

您将要像这样访问它:

:foo => row['Foo'],
:bar => row['Bar'],
:baz => row['Baz']

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Ruby rake任务线程优化

来自分类Dev

rake db rake任务不起作用Ruby 2.4.0&Rails 5.0.1

来自分类Dev

创建嵌套的关联记录Ruby on Rails

来自分类Dev

Ruby - 如何创建 rake 任务来搜索项目的每一行

来自分类Dev

从txt文件ruby导入数据的rake任务?

来自分类Dev

Ruby on Rails活动记录

来自分类Dev

Ruby on Rails has_many -- 为单个记录创建关联

来自分类Dev

多选多对多 Ruby on Rails 不创建关联记录

来自分类Dev

Rails Rake任务-如何删除记录

来自分类Dev

Ruby on Rails活动记录查询

来自分类Dev

Ruby Crontab Rake任务失败,但仅在crontab运行命令时

来自分类Dev

从rake任务运行两个ruby脚本

来自分类Dev

Ruby on Rails模型创建错误

来自分类Dev

Ruby / Rails创建动态方法?

来自分类Dev

Ruby on Rails:创建一个属于另一个模型的新记录

来自分类Dev

在Ruby on Rails中为每个记录创建一个输入日志表单

来自分类Dev

Ruby On Rails:创建新记录会出现错误:语法错误,意外的“,”,期望输入结束

来自分类Dev

Ruby On Rails中的活动记录分组

来自分类Dev

从Rails中的ruby表中删除记录

来自分类Dev

Ruby on Rails活动记录查询界面

来自分类Dev

Rails模型-插入记录-Ruby方法

来自分类Dev

在 Ruby on Rails 中组织和映射记录

来自分类Dev

Ruby on Rails 4-在Heroku上使用Rake

来自分类Dev

Ruby on Rails:运行rake:db migration后与PG的连接不良

来自分类Dev

Ruby on Rails:运行rake:db migration后与PG的连接不良

来自分类Dev

Ruby on Rails Rake测试-预期762146111与762146111匹配

来自分类Dev

Rails与Heroku:如何下载rake任务创建的CSV

来自分类Dev

在视图中创建Ruby on Rails矩阵表

来自分类Dev

Ruby on Rails创建方法不保存参数

Related 相关文章

热门标签

归档