十二 07

Rails中基于属性的动态查询

分类:tech | | 给我留言

这是个很简单的Rails2.1.2的 find 的应用,来自Rdoc ActiveRecord::Base

一、find :first 和find :all

使用 Model.find_by_user_name ,来简写 Model.find(:first, :conditions=>["user_name=?",user_name])

使用 Model.find_all_by_user_name ,来简写 Model.find(:all, :conditions=>["user_name=?",user_name])

这里也可以使用and,比如典型的用户名和密码查询:Person.find_by_user_name_and_password(user_name, password)

find也支持带参数的查询,比如Payment.find_all_by_amount(50, :o rder => “created_on”)

二、find_or_create_by_和find_or_initialize_

find_or_create_by_:当查询的内容不存在时,创建并保存该记录

find_or_initialize_:更上面的相似,只是创建不保存该记录,需要自己再次save

这里也支持参数和代码块,如

User.find_or_create_by_name(‘Bob’, :age => 40) { |u| u.admin = true }

三、find_by_的时候,支持多属性,如

Tag.find_or_create_by_name(:name => “rails”, :creator => current_user)

以上文字来自Rails2.1.2的Rdoc文档ActiveRecord::Base

  • 标签 : 
  • 原文链接 : http://railser.cn/index.php/blog/dynamic-attribute-based-finders
  • 转载原创文章请注明 : 里克的自习室
  • 收藏到 : Google书签 新浪ViVi 365Key网摘 天极网摘 我摘 POCO网摘 博采网摘 YouNote网摘 和讯网摘 博拉网 igooi网摘 I2Key网摘 天下图摘 百特门网摘 Del.icio.us Yahoo书签 奇贴 QQ娱乐摘 添加到Digg! 添加到Facebook!
  • 发表留言