Запрос активной записи с использованием связанной модели в предложении Find - PullRequest
0 голосов
/ 29 июля 2011

У меня момент блондинки и, возможно, замораживание мозга.

В моем приложении rails3 у меня есть пользователи и задачи. У моих пользователей много задач ...

У меня есть следующие просроченные задачи:

@due = Task.find(:all, :conditions => ["dueddate >= ? AND AND status = ?", Date.today, false], :include => :taskcategories, :order => "dueddate asc")  

То, что я хочу сделать в моем представлении задач, это список пользователей с соответствующими задачами ...

По какой-то причине я не могу обдумать это. Я пробовал это, но это не работает:

@task = Task.all

@user = User.find(:all, :conditions => ["@task.dueddate <= ? AND 
@task.status = ?", Date.today + 7.days, false])

Я уверен, что это легко, кто-нибудь может мне помочь !!?

1 Ответ

6 голосов
/ 29 июля 2011

Я думаю, это должно работать

обновлен

User.joins(:tasks)
    .where("tasks.dueddate <= ? AND tasks.status = ?", Date.today + 7.days, false).group(:id)

Это должно работать с SQLite и MySQL. Однако PostgreSQL требует, чтобы вы указали все столбцы таблицы. Если это маленькая таблица, вы можете просто ввести имена. Или вы можете добавить этот метод к модели:

def self.column_list
  self.column_names.collect { |c| "#{self.to_s.pluralize.downcase}.#{c}"}.join(",")
end

и изменить .group(:id) на .group(User.column_list)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...