order = Order.find_by_name("Dave Thomas")
orders = Order.find_all_by_name("Dave Thomas")
order = Order.find_all_by_email(params['email'])
如果你了个Model类find_by_或者find_all_by_这样串打头格式思路方法Active Record将它们转换成个查询器(finder)而将思路方法后面串作为字段名转换find思路方法参数例如:
order = Order.find_by_name("Dave Thomas", other args...)
上面等效转换为:
order = Order.find(:first,
:conditions => ["name = ?", "Dave Thomas"],
other_args...)
类似个find_all_by_xxx思路方法相当于find(:all… )思路方法
到这里魔术还没有停止Active Record还可以对多个列创建查询器(finder)例如你可以写:
user = User.find_by_name_and_password(name, pw)
相当于:
user = User.find(:first,
:conditions => ["name = ? and password = ?", name, pw])
为了确定要检查哪些字段Active Record简单分割find_by_和find_all_by_后面串这在大多数情况下是够用除非你根本就没有某个在思路方法名中包含字段
注意Active Record并不提供在find_by_或find_all_by后面两个字段名中含有_or_
最新评论