我有一个“课程”模型,has_many时隙。Rails 3:过滤和范围“不能将散列转换为整数”问题
在课程模式,我有以下几种方法:
def available_timeslots
tsarray = []
self.timeslots.map{ |t|
if t.available then
tsarray << t
end
}
tsarray
end
def earliest_slot
self.available_timeslots.first(:order => :starting_date)
end
我想要现在做的就是让每门课程最早的可用时隙。没有可用性过滤器,@ course.earliest_slot工作正常。但是,如果我尝试@ course.available_timeslots.earliest_slot带回“无法将散列转换为整数”消息。
任何建议赞赏
未经测试的思想:它看起来像':为了= >:starting_date'是传递给'Array'的'first'方法的散列。 'first' [带有一个可选的整数参数](http://www.ruby-doc.org/core/classes/Array.html#M000222)(例如“返回前20个元素”)。尝试将该参数移除到“第一个”方法。也许在两个单独的调用中返回的对象类型是不同的(proxy?),这就是为什么你看到使用简单的'Array'的调用错误。 – Zabba 2011-05-13 00:12:56