Избегайте создания дублирующих объектов из подклассов данной модели в Rails - PullRequest
1 голос
/ 11 января 2012

У меня есть модель group.rb с подклассами organization.rb, company.rb и т. Д. Мне интересно, есть ли способ создать организацию с именем "Rails Beginners Society", не создавая при этом также компанию с название "Rails Beginners Society"? В нынешнем виде это выглядит так, будто я делаю что-то вроде Organization.find_or_create_by_name(:name => @profile.organization). В итоге я не только создаю организацию, но также компанию и все другие подклассы group.rb с именем, которое я предоставляю в моем контроллере.

Любые идеи / рекомендации будут высоко оценены!

Мои модели выглядят так:

class Group < ActiveRecord::Base
  has_and_belongs_to_many :users
end

class Organization < Group
end

Etc ...

1 Ответ

1 голос
/ 11 января 2012

Похоже, что вы пытаетесь сделать это STI (Single Table Inheritance). Rails это поддерживает.

class Group < ActiveRecord::Base
end

class Organization < Group
end

и т.д ...

Если в вашей таблице groups есть столбец type, Rails должен обработать все для вас.

...