簡體   English   中英

如何通過鐵軌交叉兩個ActiveRecord關系對象?

[英]How can i intersection two ActiveRecord Relation objects by rails?

我需要找到兩個ActiveRecord Relation對象的相交結果。 這是我的控制器

if params.has_key?(:car_insurance_type_id)
  car_insurance_type = CarInsuranceType.find_by(id: params[:car_insurance_type_id])
else
  car_insurance_type = CarInsuranceType.find_by(id: 1)
end

@breadcrumb_title = car_insurance_type.title

car_insurance_objects_private = car_insurance_type.car_insurance_objects

if params.has_key?(:car_model_id)
  car_model_search = CarModel.find_by(id: params[:car_model_id])

  if car_model_search
    car_insurance_objects_from_model = car_model_search.car_insurance_objects
  end

end

car_insurance_objects_private = car_insurance_objects_private & car_insurance_objects_from_model

但是“&”方法不適用於ActiveRecord對象

這是我的模特

class CarInsuranceType < ActiveRecord::Base

  has_many :car_insurance_objects ,dependent: :destroy

end

class CarInsuranceObject < ActiveRecord::Base

  belongs_to :insurance_company
  belongs_to :car_insurance_type
  has_and_belongs_to_many :car_models

end

class CarModel < ActiveRecord::Base

  belongs_to :car_brand
  has_and_belongs_to_many :car_insurance_objects ,dependent: :destroy

end

那么,如何找到兩個屬於一個car_insurance_type的CarInsuranceObject和另一個具有has_and_belongs_to_many car_models的CarInsuranceObject之間的相交結果?

謝謝!

據我了解,你需要查詢數據庫的CarInsuranceObject “指定的第CarInsuranceTypeCarModel 為什么不簡化所有這些東西:

car_insurance_type_id = params[:car_insurance_type_id] || 1
car_insurance_objects_private = car_model_search.car_insurance_objects.where(car_insurance_type_id: car_insurance_type_id)

順便說一句,變量確實有很長的名字。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM