0

当我使用 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 #                    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 做类似的事情?

4

1 回答 1

0

如果 Todo belongs_to 或 has_one 联系人,我假设是基于上面 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)
于 2011-06-02T12:47:52.277 回答