Ruby on Rails 2.1 - 查找器



以下是查找记录的方法,包含有条件和无条件的情况:

以下代码将查找 ID 为 50 的作者。

Author.find(50)

以下代码将查找 ID 为 20、30 和 40 的作者。

Author.find([20,30, 40])

以下代码将查找所有作者。

Author.find :all

以下代码将查找所有名为 alam 的作者。

Author.find :all
            :condition => ["first_name =?", "alam" ]

以下代码将查找第一个名为 alam 的作者记录。

Author.find :first
            :condition => ["first_name =?", "alam" ]

查找器的选项

您可以将以下选项与find函数一起使用。

  • :order => 'name DESC' 使用此选项按升序或降序排列结果。

  • :offset => 20 从偏移量 20 开始提取记录。

  • :limit => 20 只返回 20 条记录。

  • :group => 'name' 这相当于 SQL 片段 GROUP BY。

  • :joins => LEFT JOIN ... 额外的 LEFT JOIN(很少使用)。

  • :include => [:account, :friends] 这是带有这些模型的 LEFT OUTER JOIN。

  • :select => [:name, :address] 使用此选项代替 SELECT * FROM。

  • :readonly => true 使用此选项使对象写保护。

基于动态属性的查找器

您可以使用更动态的函数来获取值。

如果存在字段user_name,则可以使用以下方法按用户名查找记录。

Person.find_by_user_name(user_name)

如果存在字段last_name,则可以使用以下方法按姓氏查找记录。

Person.find_all_by_last_name(last_name)

如果存在字段user_namepassword,则可以使用以下方法查找给定用户名和密码的记录。

Person.find_by_user_name_and_password(user_name, password)
rails-quick-guide.htm
广告