我想在ActiveRecord中使用'逻辑OR'动态查找器。有人见过这样的事吗?
所以本着这样的精神......
User.find_by_name_and_email("foo", "bar@thud.com")
..你可以做这样的事情..
User.find_by_username_or_email(user_input)
答案 0 :(得分:5)
您是否经常在数据库中拥有具有可以像这样查找的逻辑值的字段?足以担心使用动态查找器方法?可能不是。为此,named_scope出了什么问题?
class User < ActiveRecord::Base
named_scope :user_or_email, lambda{ |user_name|
{ :conditions => ["username =? OR email =?", user_name, user_name] }
}
end
这就是你想要的,我只是不认为这种事情会经常出现,足以为动态发现者辩护,但嘿,我可能是错的。