Ruby on rails 3 在条件下求和列值
假设: 工作台Ruby on rails 3 在条件下求和列值,ruby-on-rails-3,Ruby On Rails 3,假设: 工作台 Name created_at Size 我想列出所有作品,最后总结所有尺寸值,但有一个条件。创建时间必须小于1年 我知道 @works.sum(&:size) 工作正常,但不会过滤掉“created_at”部分 然后我就说到这里 @works.sum(&:size,:conditions=>['created_at>?',1.年前]) 但是不断出现编译错误,期望a)而不是a 请帮忙?有没有更好的方法来实现这一点?您可以使用范围来保持模型清洁 #controller
Name
created_at
Size
我想列出所有作品,最后总结所有尺寸值,但有一个条件。创建时间必须小于1年
我知道
@works.sum(&:size)
工作正常,但不会过滤掉“created_at”部分
然后我就说到这里
@works.sum(&:size,:conditions=>['created_at>?',1.年前])
但是不断出现编译错误,期望a)而不是a
请帮忙?有没有更好的方法来实现这一点?您可以使用范围来保持模型清洁
#controller
class WorksController < ApplicationsController
def index
@works.recent.sum(&:size)
end
end
#model
class Work
scope :recent, ->{ where('created_at > ?', 1.year.ago) }
end
#控制器
类WorksController<应用程序控制器
def索引
@工程.近期.总额(&:规模)
结束
结束
#模型
课堂作业
范围:最近,->{where('created_at>?',1年前)}
结束
您可以使用范围保持模型清洁
#controller
class WorksController < ApplicationsController
def index
@works.recent.sum(&:size)
end
end
#model
class Work
scope :recent, ->{ where('created_at > ?', 1.year.ago) }
end
#控制器
类WorksController<应用程序控制器
def索引
@工程.近期.总额(&:规模)
结束
结束
#模型
课堂作业
范围:最近,->{where('created_at>?',1年前)}
结束
这对我很有用:
@works.where('created_at > ?', 1_year_ago).sum(:size)
这对我很有用:
@works.where('created_at > ?', 1_year_ago).sum(:size)
@乔尔,这是你需要的吗?乔尔,这是你需要的吗?