2014-06-08 139 views
0

我將如何過濾沒有任何關聯電路的實驗?如何過濾查詢結果?

我的實驗模型:

has_many :circuits 

我的查詢:

@experiments = Experiment.where(:public=>true).where(
     'updated_at >= :one_month_ago, 
     :one_month_ago => Time.now - 30.days 
    ) 

所以,我需要避免與相關等於零電路的任何實驗。 有什麼想法?

回答

0

我需要避免任何與實驗相關等於零電路

一種方式是通過設置validationforeign_key(experiment_id)如果您有它。

Class Circuit < ActiveRecord::Base 

belongs_to :experiment 

validates :experiment_id, :presence=>true 

end 

因此,通過設置上述驗證,可以確保every circuit is associated to the expeiment

+0

但是,如何將這些實驗從具有零關聯電路的查詢中排除? – simo

+0

@simo你不需要查詢零關聯電路。當這個驗證被給出時,將不會有任何與實驗無關的電路。它會照顧到這一點。 – Pavan

+0

它沒有工作,在這裏看到http://dcaclab.com/en/users_experiments,實驗「串聯電路實踐」不應列出,因爲它有零電路 – simo