【发布时间】:2012-01-23 01:16:33
【问题描述】:
我尝试实现 memoized_finder 方法,但遇到了一个我不理解的错误。
我的方法如下:
class Module
def memoized_finder(name, conditions=nil)
class_eval <<-STR
def #{name}(reload=false)
@#{name} = nil if reload
@#{name} ||= find(:all, :conditions => #{conditions.inspect})
end
STR
end
end
这会导致以下错误:
SyntaxError: (eval):3: odd number list for Hash. @sire ||= find(:all, :conditions => {conditions.inspect})
我已经用谷歌搜索了,但无法找出问题所在。
注意:我使用的方法来自一篇关于扩展 Activerecord 关联的精彩文章。如果有人想看看,这是链接:http://weblog.jamisbuck.org/2007/1/9/extending-activerecord-associations
感谢您的意见。
【问题讨论】:
标签: ruby-on-rails ruby-on-rails-3 activerecord memoization