提交 d1e95e12 编写于 作者: R Ryan Bigg

Revert "Query guide: arel_table, eq and eq_any" along with other commits that...

Revert "Query guide: arel_table, eq and eq_any" along with other commits that added documentation involving the arel_table method

This reverts commit 578f9711.

Conflicts:

	railties/guides/source/active_record_querying.textile
上级 e4314e7d
......@@ -337,137 +337,6 @@ This code will generate SQL like this:
SELECT * FROM clients WHERE (clients.orders_count IN (1,3,5))
</sql>
h4. +arel_table+
The +arel_table+ method is used in the following sections to gain access to more advanced functionality of the Active Relation building language. You may see examples such as this:
<ruby>
Post.where(Post.arel_table[:comments_count].eq(5)))
</ruby>
Don't be alarmed! This method returns an +Arel::Table+ object which provides methods for accessing fields and building queries, as you'll see in the following sections.
h4. +eq+
The +eq+ method can be used to check if a field is a specific value:
<ruby>
Post.where(Post.arel_table[:comments_count].eq(5))
</ruby>
This method's opposite is +not_eq+.
h4. +eq_any+
Checks if the specified field matches any of the given values.
<ruby>
Post.where(Post.arel_table[:comments_count].eq_any([1,2])
</ruby>
This method's opposite is +not_eq_any+.
h4. +in+
To check if a field is within a given group of values, use the +in+ method:
<ruby>
Post.where(Post.arel_table[:id].in([1,2,3]))
</ruby>
This method's opposite is +not_in+.
h4. +in_any+
Check if a field is within any one of a group of values:
<ruby>
Post.where(Post.arel_table[:id]).in_any([1,2,3], [4,5,6])
</ruby>
This method's opposite is +not_in_any+.
h4. +in_all+
Check if a field is within all of the specified groups of values:
<ruby>
Post.where(Post.arel_table[:id]).in_all([1,2,3], [1,4,6])
</ruby>
This method's opposite is +not_in_all+.
h4. +matches+
Match a specific field with a given value. Use +%+ for wildcard searching.
<ruby>
Post.where(Post.arel_table[:author].matches("Ryan%"))
</ruby>
This method's opposite is +does_not_match+.
h4. +matches_any+
Match a specific field with any given value. Use +%+ for wildcard searching.
<ruby>
Post.where(Post.arel_table[:author].matches_any(["Ryan%", "Yehuda%"]))
</ruby>
This method's opposite is +does_not_match_any+
h4. +matches_all+
Match a specific field with all given values. Use +%+ for wild card searching.
<ruby>
Post.where(Post.arel_table[:author].matches_all(["Ryan%", "%Bigg"]))
</ruby>
This method's opposite is +does_not_match_all+.
h4. +gteq+
Check for a field greater than or equal to a specific value.
<ruby>
Post.where(Post.arel_table[:comments_count].gteq(1))
</ruby>
This method's opposite is +lteq+.
h4. +gteq_any+
Check for a field greater than or equal to any of the given values.
<ruby>
Post.where(Post.arel_table[:comments_count].gteq_any([1,2]))
</ruby>
This method's opposite is +lteq_any+.
h4. +gteq_all+
Check for a field greater than or equal to all of the given values.
<ruby>
Post.where(Post.arel_table[:comments_count].gteq_all([1,2]))
</ruby>
This method's opposite is +lteq_all+.
h4. +or+
Allows you to chain queries to get results matching either condition:
<ruby>
title = Post.arel_table[:title]
Post.where(title.eq("Active").or(title.eq("Record")))
</ruby>
Note that this method is called on the end of the +eq+ method here, rather than the +where+.
h3. Ordering
To retrieve records from the database in a specific order, you can use the +order+ method.
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册