/ / създайте нов родител, но използвайте съществуващо дете - ruby-on-rails, ruby

създайте нов родител, но използвайте съществуващо дете - ruby-on-rails, ruby

Имам два модела по-долу:

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.