【发布时间】:2010-12-28 07:37:44
【问题描述】:
当我从表中删除_all 并再次开始插入时,我遇到了主键如何递增的问题。这是有问题的,因为我有其他与清除表关联的模型。例如,如果我有属于计算机的 Apple,那么当我清除计算机表并重新添加计算机时,关联会变得混乱,因为 Apple 现在在其行中有婴儿计算机 ID。我希望能够重置计算机的主键,这样当我重新添加计算机时,关联仍然保持不变。我应该如何在 Rails 中执行此操作?
编辑 我很抱歉不清楚这一点,但现在我会告诉你我想做的事情。我希望用户与机器(计算机)相关联。计算机有自己的 id,只能由管理员创建。电脑桌上有固定数量的电脑。
User
belongs_to :computer
Computer
has_many :users
我面临的问题是,我在种子.rb/some rakefile 中预先加载了计算机表。当我启动我的应用程序时,我只想运行首先删除所有内容然后预加载表的文件。这将让用户仅从计算机表中提供的计算机中选择计算机。我希望能够再次运行这个脚本(比如在 heroku 控制台中,而不删除 User 表)并且仍然获得与每台机器(以及每个用户)相关联的相同 id。我对如何做到这一点感到困惑。请让我知道我是否应该这样做。
【问题讨论】:
-
您不应该使用种子或固定装置或其他任何东西加载此类数据。它应该通过一些管理界面进行维护。不要使用两个主键 - 你最终会一团糟:)
-
也许试着解释一下你在做什么以及为什么要这样做。
标签: ruby-on-rails ruby-on-rails-3