Ruby on rails 使用Rails中另一列的数据更新列中的所有行
我有一个Ruby on rails 使用Rails中另一列的数据更新列中的所有行,ruby-on-rails,activerecord,migration,ruby-on-rails-5,Ruby On Rails,Activerecord,Migration,Ruby On Rails 5,我有一个Content模型,其中每个内容都有一个源。目前,Content模型有一个link列作为URL,还有一个link\u text列作为源的名称,即用户必须手动输入源的名称和URL。我想改变这一点,以便能够自动输入一个名称,一旦提供了一个URL。以下是我所做的: 我制作了一个源代码模型。源模型包含用于内容的每个源的所有名称和域。这与以下内容有关:源代码有许多内容,而内容属于源代码 因此,我需要将link\u text列替换为source\u id列。然后我需要使用contents表中的链接列
Content
模型,其中每个内容都有一个源。目前,Content
模型有一个link
列作为URL,还有一个link\u text
列作为源的名称,即用户必须手动输入源的名称和URL。我想改变这一点,以便能够自动输入一个名称,一旦提供了一个URL。以下是我所做的:
我制作了一个源代码模型。源模型包含用于内容的每个源的所有名称
和域
。这与以下内容有关:源代码
有许多内容
,而内容
属于源代码
因此,我需要将link\u text
列替换为source\u id
列。然后我需要使用contents表中的链接
列来设置源id
列的值
i、 e.我将把链接
列(在目录表中)中的URL与域
列(在源表中)中的URL进行比较,并相应地为内容
的每一行设置源id
我该怎么做呢?
另一个要考虑的事情是,我想在迁移中设置<代码> SooSuxIDI/Cuff>,这样我也可以对我的生产应用程序中的现有数据进行更改。
我创建了一个迁移,将源id
列添加到我的内容表中,并创建了另一个迁移,为所有现有记录设置该列中的所有数据-这是我不确定的第二个迁移。哪些列标识链接?即content.link==source.domain
?不,链接和域不相等<代码>内容。链接
类似于https://www.example.com/some/page
和source.domain
类似于https://www.example.com
不太好。然后,您必须使用ruby代码编写迁移,并降低迁移周期,而不是1次SQL更新。在这种情况下,有没有更好的方法来处理这个@pavel?i、 e.我也可以轻松地对生产数据库进行更改的一种方法?您必须像Source.link
那样设计表。link
与Content.link
相同。然后,您可以将源代码id
添加到内容中,用所有链接填充源代码
表,通过链接
更新内容(设置源代码id
),然后在内容上添加外键、索引和非空
约束。源代码id
列。