Pregunta

Tengo una relación polimórfica en Rails, pero en un caso particular de uso, solo me gustaría recuperar registros para una clase específica.

¿Cuál es el mejor enfoque para hacer esto?

¿Fue útil?

Solución 2

El complemento de rieles has_many_polymorphs puede adaptarse bastante bien a este propósito. Puede definir & Quot; getters & Quot; para extraer tipos de datos específicos que forman parte de una relación polimórfica.

Es algo complicado y la documentación podría permitirse mejorar sin embargo.

Otros consejos

class Address < ActiveRecord::Base
  belongs_to :addressable, :polymorphic => true
end

class Person < ActiveRecord::Base
  has_many :addresses, :as => :addressable
end

class Company < ActiveRecord::Base
  has_many :addresses, :as => :addressable
end

>> c  = Company.create(:name => "WidgetCo")
>> p  = Person.create(:name => "John Smith")
>> a1 = Address.create(:street => "123 Foo ST", :city => "Barville", :state_code => "MT", :zip_code => "12345", :addressable => p)
>> a2 = Address.create(:street => "321 Contact RD", :city => "Bazburg", :state_code => "MT", :zip_code => "54321", :addressable => c)
>> Address.all(:conditions => { :addressable_type => Person.class_name })
=> [#<Address id: 1, street: "123 Foo ST" ... >]
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top