Jen*_*unt 0 activerecord ruby-on-rails ruby-on-rails-3
我有一个金发碧眼的时刻,可能是大脑冻结.
在我的rails3应用程序中,我有用户和任务.我的用户有很多任务......
我有到期和逾期的任务如下:
@due = Task.find(:all, :conditions => ["dueddate >= ? AND AND status = ?", Date.today, false], :include => :taskcategories, :order => "dueddate asc")
Run Code Online (Sandbox Code Playgroud)
我想在我的任务视图中做的是列出具有适当任务的用户......
出于某种原因,我无法理解它.我试过这个,但它不起作用:
@task = Task.all
@user = User.find(:all, :conditions => ["@task.dueddate <= ? AND
@task.status = ?", Date.today + 7.days, false])
Run Code Online (Sandbox Code Playgroud)
我相信这很容易,任何人都可以帮助我!!?
我想这应该有效
更新
User.joins(:tasks)
.where("tasks.dueddate <= ? AND tasks.status = ?", Date.today + 7.days, false).group(:id)
Run Code Online (Sandbox Code Playgroud)
这应该适用于SQLite和MySQL.但是,PostgreSQL要求您提供表的所有列.如果它是一个小表,您只需键入名称即可.或者您可以将此方法添加到模型中:
def self.column_list
self.column_names.collect { |c| "#{self.to_s.pluralize.downcase}.#{c}"}.join(",")
end
Run Code Online (Sandbox Code Playgroud)
并.group(:id)改为.group(User.column_list)
| 归档时间: |
|
| 查看次数: |
1385 次 |
| 最近记录: |