Имам два модела по-долу:
class Unit < ActiveRecord::Base
...
has_many :sites
end
class Site < ActiveRecord::Base
...
page_id
belongs_to :unit
end
Така че сега, когато създавам нов модул, винаги искам да проверя дали вече съществува сайт със същата page_id, след което създайте нов "Unit", но използвайте съществуващия "Site". Но ако нямаше Site
с едни и същи page_id
след това създайте ново звено с нов сайт.
Отговори:
1 за отговор № 1Най-простото решение, за което мога да се сетя, е използването на Rails " find_or_create_by
метод. Документацията е тук.
По този начин, при създаването на нов Site
, можете просто да направите нещо подобно:
u = Unit.new
u.site = Site.find_or_create_by(page_id: @page_id)
Където @page_id
е въпросният page_id.