memoized_finder 方法出现错误

发布于 2024-12-21 19:21:41 字数 754 浏览 0 评论 0原文

我尝试实现 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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

柒夜笙歌凉 2024-12-28 19:21:42

事实证明,我的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.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文