如何覆盖rails 3中的'where'

时间:2011-01-09 11:29:05

标签: activerecord ruby-on-rails-3 override

我已将我的应用程序从rails 2.3.8升级到3.0.3。但是我遇到了一个问题。我正在使用'find'但是覆盖在rails 3中不起作用:

# override activerecord's find to allow us to find by name or id transparently
  def self.find(*args)
    if args.is_a?(Array) and args.first.is_a?(String) and (args.first.index(/[a-zA-Z\-_]+/) or args.first.to_i.eql?(0) )
      find_by_login_slug(args)
    else
      super
    end
  end

我想知道是否有办法让它在rails 3中运行,甚至可以使用where。

感谢

1 个答案:

答案 0 :(得分:-1)

您面临的问题是从rails 2.3.X升级到rails 3.0.X应用程序。虽然,它似乎是一个简单的任务,但它并不是,特别是如果你有一个真正的应用程序,而不是一个玩具。我建议你看一下Rayn Bates的截屏视频系列,你可以从http://railscasts.com/episodes/225-upgrading-to-rails-3-part-1开始,全面了解你所遇到的问题。

如果你只需要阅读有关ActiveRecord的新界面,http://m.onkey.org/active-record-query-interface是一篇很棒的文章。