1

我想要 ActiveRecord 中的“逻辑或”动态查找器。有人见过这样的吗?

所以本着这样的精神..

User.find_by_name_and_email("foo", "bar@thud.com")

..你可以做这样的事情..

User.find_by_username_or_email(user_input)
4

1 回答 1

5

你真的多久会在你的数据库中拥有可以像这样查找的东方值的字段?足以担心使用动态查找器方法吗?可能不是。为此,named_scope 有什么问题?

class User < ActiveRecord::Base

  named_scope :user_or_email, lambda{ |user_name|
    { :conditions => ["username =? OR email =?", user_name, user_name] }
  }

end

这就是你想要的,我只是认为这种事情不会经常出现,足以证明动态查找器的合理性,但嘿,我可能是错的。

于 2009-06-08T04:47:34.467 回答