mirror of
https://github.com/github/rails.git
synced 2026-04-26 03:00:59 -04:00
Revert "Query guide: arel_table, eq and eq_any" along with other commits that added documentation involving the arel_table method
This reverts commit 578f9711fd.
Conflicts:
railties/guides/source/active_record_querying.textile
This commit is contained in:
@@ -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.
|
||||
|
||||
Reference in New Issue
Block a user