创建新父级但使用现有子级

时间:2014-07-14 14:37:05

标签: ruby-on-rails ruby

我有两个模型如下:

class Unit < ActiveRecord::Base
  ...
  has_many :sites
end

class Site < ActiveRecord::Base
  ...
  page_id
  belongs_to :unit
end

所以现在在创建新单元时,我总是想检查具有相同page_id的站点是否已经存在,然后只创建一个新的“单元”,但使用现有的“站点”。但是,如果没有Site具有相同的page_id,则使用新网站创建新单元。

1 个答案:

答案 0 :(得分:1)

我能想到的最简单的解决方案是使用Rails&#39; find_or_create_by方法。文档为here

这样,在创建新Site时,您可以执行以下操作:

u = Unit.new
u.site = Site.find_or_create_by(page_id: @page_id)

@page_id是有问题的page_id。