Tuesday, 15 May 2012

ruby on rails - how create object from query with includes -



ruby on rails - how create object from query with includes -

platform , platformcategory connected belongs_to has_many

i have such query db

p = platformcategory.where(params[:platform_category_ids]).includes(:platforms)

i want utilize each id of platform associated p variable , set new object, this:

p.each { |plat_cat| campaign.create(..., some_id: plat_cat.platform.id) }

but platformcategory has_many platforms , here want phone call each block on plat.cat, it's sounds not ruby way.

upd ok when pass array [1,2,3,4], array in params 'nomethoderror: undefined method `joins' array'

are looking this?:

p = platformcategory.where(id: [1,2,3,4]).joins(:platforms).select('platforms.id)

and then:

p.each { |plat_cat| campaign.create(..., some_id: plat_cat.id) }

update: since find not chain joins method homecoming array(if pass array argument) after query. can avoid such scenario:

p = platformcategory.joins(:platforms).select('platforms.id').find([1,2,3,4])

ruby-on-rails ruby activerecord

No comments:

Post a Comment