Мы можем использовать ActiveRelation как это:Использование ActiveRelation с: включается на полиморфного has_one неявно создать отношения
MyModel.where(:field => "test").create => #<Message ... field:"test">
Но он не работает для соединений с полиморфными HAS_ONE ассоциаций:
class RelatedModel < AR::Base
# has :some_field
belongs_to :subject, :polymorphic => true
end
class MyModel < AR::Base
# need some dirty magic here
# to build default related_model with params from active_relation
has_one :related_model, :as => :subject, :dependent => :destroy
end
describe MyModel do
it "should auto-create has_one association with joins" do
test = MyModel.joins(:related_model).where("related_models.subject_type" => "MyModel", "related_models.some_field" => "chachacha").create
test.related_model.should_not be_nil
test.related_model.some_field.should == "chachacha"
test.related_model.subject_type.should == "MyModel"
test.related_model.subject_id.should == test.id
# fails =)
end
end
ли это возможно для извлечения параметров active_relation, передать их в MyModel для использования в before_create и построить для них RelatedModel?