我有两个模型如下:
class Unit < ActiveRecord::Base
...
has_many :sites
end
class Site < ActiveRecord::Base
...
page_id
belongs_to :unit
end
所以现在在创建新单元时,我总是想检查具有相同page_id的站点是否已经存在,然后只创建一个新的“单元”,但使用现有的“站点”。但是,如果没有Site
具有相同的page_id
,则使用新网站创建新单元。
答案 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。