Ruby on rails 3 如何在Rails 3的metawhere中搜索关联?
当我使用searchlogic时,我可以使用以下内容:Ruby on rails 3 如何在Rails 3的metawhere中搜索关联?,ruby-on-rails-3,associations,meta-where,Ruby On Rails 3,Associations,Meta Where,当我使用searchlogic时,我可以使用以下内容: 27 # @todos = Todo.contact_user_id_is(current_user). 28 # contact_campaign_id_is(@campaign). 29 # current_date_lte(Date.today). 30 # done_date_null. 31 #
27 # @todos = Todo.contact_user_id_is(current_user).
28 # contact_campaign_id_is(@campaign).
29 # current_date_lte(Date.today).
30 # done_date_null.
31 # ascend_by_contact_id.
32 # ascend_by_current_date
例如,它允许我搜索属于Todo记录联系人的活动
这就是我尝试过的不确定如何进行排序:
22 @todos = Todo.joins(:contacts).where(:user_id.eq => current_user,
23 :contacts => { :campaign_id.eq => @campaign.id},
24 :current_date.lteq => Date.today,
25 :done_date.not_eq => nil)
如何使用metawhere执行类似操作?如果Todo属于或只有一个联系人(我假设是基于上述Searchlogic查询的情况),您可能希望执行类似未测试的操作:
@todos = Todo.joins(:contact).
where(
:contact => {
:user_id => current_user.id,
:campaign_id => @campaign.id
},
:current_date.lteq => Date.today,
:done_date.not_eq => nil
).
order(:contact_id, :current_date)
是的,我认为这是正确的事情,但出于某种原因,它不是正确的,但让我再玩一点,也许我做错了什么…我想我使用了复数连接:联系人…它只是单数,对吗?