memoized_finder 方法出现错误
我尝试实现 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
感谢您的意见。
I trying to implement a memoized_finder method and I am getting an error that I don't understand.
My method follows:
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
This is resulting in the following error:
SyntaxError: (eval):3: odd number list for Hash. @sire ||= find(:all, :conditions => {conditions.inspect})
I have googled around but can't come up with what is going wrong.
Note: The method I'm using come from a great article on Extending Activerecord Associations. Here's the link if anyone want's to have a look:http://weblog.jamisbuck.org/2007/1/9/extending-activerecord-associations
Thanks for your input.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
事实证明,我的jruby安装基于与memoized_finder方法不兼容的rails版本。
It turns out that my jruby installation is based upon a version of rails that is not compatible with the memoized_finder method.