Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/68.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 如何在生产中向rails应用程序添加数据?_Ruby On Rails - Fatal编程技术网

Ruby on rails 如何在生产中向rails应用程序添加数据?

Ruby on rails 如何在生产中向rails应用程序添加数据?,ruby-on-rails,Ruby On Rails,我将手动添加一些用户(因为我想让他们成为管理员,例如user.admin=true。以前,在开发中,我使用seeds来实现这一点,但我相信(如果我错了,请纠正我)你不应该在生产中以这种方式使用种子。我还应该做什么?有很多选择,每个都有各自的优缺点 在Rails控制台中设置用户 优点:简单,可根据需要定制 缺点:不可复制 在迁移中添加用户 优点:如果这是一个新表或其他表中存在相关数据,则可以在迁移过程中立即设置新数据 缺点:不是迁移脚本的标准用法 使用rake任务设置用户 优点:复制步

我将手动添加一些用户(因为我想让他们成为管理员,例如
user.admin=true
。以前,在开发中,我使用seeds来实现这一点,但我相信(如果我错了,请纠正我)你不应该在生产中以这种方式使用种子。我还应该做什么?

有很多选择,每个都有各自的优缺点

  • 在Rails控制台中设置用户
    • 优点:简单,可根据需要定制
    • 缺点:不可复制
  • 在迁移中添加用户
    • 优点:如果这是一个新表或其他表中存在相关数据,则可以在迁移过程中立即设置新数据
    • 缺点:不是迁移脚本的标准用法
  • 使用rake任务设置用户
    • 优点:复制步骤的代码将被签入回购协议
    • 缺点:如果您只想做一次,那么rake任务就太过了

最好的解决方案可能是在应用程序的
scripts/
目录中添加一个脚本,详细说明步骤,让您的团队审阅此代码,然后使用它运行。

有许多选项,每个选项都有各自的优缺点

  • 在Rails控制台中设置用户
    • 优点:简单,可根据需要定制
    • 缺点:不可复制
  • 在迁移中添加用户
    • 优点:如果这是一个新表或其他表中存在相关数据,则可以在迁移过程中立即设置新数据
    • 缺点:不是迁移脚本的标准用法
  • 使用rake任务设置用户
    • 优点:复制步骤的代码将被签入回购协议
    • 缺点:如果您只想做一次,那么rake任务就太过了

最好的解决方案可能是在应用程序的
scripts/
目录中添加一个脚本,详细说明步骤,让您的团队审阅此代码,然后使用运行。

您有权访问生产命令行吗?如果您使用的是Heroku,则可以执行以下操作:

$ heroku run rails console
> user = User.new
> user.name = "The name"
// repeat for all other fields
> user.admin = true
> user.save
或者,如果您在数据库中已经将它们作为非管理员

$ heroku run rails console
> user = User.find_by(name: "Their Name")
> user.update_attribute(:admin, true)

您有权访问生产命令行吗?如果您使用Heroku,您可以执行以下操作:

$ heroku run rails console
> user = User.new
> user.name = "The name"
// repeat for all other fields
> user.admin = true
> user.save
或者,如果您在数据库中已经将它们作为非管理员

$ heroku run rails console
> user = User.find_by(name: "Their Name")
> user.update_attribute(:admin, true)

您的生产环境使用哪台服务器?Apache?Heroku?您的生产环境使用哪台服务器?Apache?Heroku?