【问题标题】:Update existing records relation更新现有记录关系
【发布时间】:2015-10-30 15:29:46
【问题描述】:

我有一个包含大约 100 条现有用户记录的用户资源。

每个用户都与一个状态表有关系。

用户.rb

has_one :status

status.rb

belongs_to :user

我不仅需要为新用户创建此关联,还需要为现有用户创建此关联。

我该怎么做? 另外..我正在使用rails 2。

【问题讨论】:

    标签: ruby-on-rails ruby-on-rails-2


    【解决方案1】:

    只需使用控制台。

    User.all.each |user|
      Status.create(user_id: user.id)
    end
    

    【讨论】:

    • 谢谢,这似乎是要走的路,但是如果我不想从 prod 的控制台中触发具有该逻辑的方法,我什么时候可以触发?
    • 有几种方法。您可以将该代码添加到status 迁移,或者您可以创建一个您可以在生产中访问的方法,例如:例如一个带有“add status to existing users”按钮的管理视图,但我可能只使用控制台。
    • 如何从迁移文件中做到这一点?我可以在 up 方法之后调用模型中的方法吗?
    • 如果您已经创建了 Status 模型,您可以创建另一个迁移,而不是添加 add_column 等。您只需放入上面的代码。如果您尚未创建状态模型,您可以在创建状态表的同一文件中添加代码,只要它位于创建 doend 部分下方。
    【解决方案2】:

    首先你必须生成一个迁移

    rails g migration AddUserreferenceToStatus user:references
    

    并检查生成的迁移文件,如果表名正常,则迁移它。和

    然后你可以运行@miler350 方法为老用户创建状态。

    【讨论】:

      猜你喜欢
      • 2015-10-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-02-20
      • 1970-01-01
      相关资源
      最近更新 更多