method
from
v7.1.3.4 -
Show latest stable
-
2 notes -
Class: ActiveRecord::QueryMethods
- 1.0.0
- 1.1.6
- 1.2.6
- 2.0.3
- 2.1.0
- 2.2.1
- 2.3.8
- 3.0.0 (0)
- 3.0.9 (0)
- 3.1.0 (0)
- 3.2.1 (0)
- 3.2.8 (0)
- 3.2.13 (0)
- 4.0.2 (20)
- 4.1.8 (0)
- 4.2.1 (0)
- 4.2.7 (0)
- 4.2.9 (0)
- 5.0.0.1 (0)
- 5.1.7 (0)
- 5.2.3 (0)
- 6.0.0 (0)
- 6.1.3.1 (0)
- 6.1.7.7 (0)
- 7.0.0 (38)
- 7.1.3.2 (0)
- 7.1.3.4 (0)
- What's this?
from(value, subquery_name = nil)
public
Specifies the table from which the records will be fetched. For example:
Topic.select('title').from('posts') # SELECT title FROM posts
Can accept other relation objects. For example:
Topic.select('title').from(Topic.approved) # SELECT title FROM (SELECT * FROM topics WHERE approved = 't') subquery
Passing a second argument (string or symbol), creates the alias for the SQL from clause. Otherwise the alias “subquery” is used:
Topic.select('a.title').from(Topic.approved, :a) # SELECT a.title FROM (SELECT * FROM topics WHERE approved = 't') a
It does not add multiple arguments to the SQL from clause. The last from chained is the one used:
Topic.select('title').from(Topic.approved).from(Topic.inactive) # SELECT title FROM (SELECT topics.* FROM topics WHERE topics.active = 'f') subquery
For multiple arguments for the SQL from clause, you can pass a string with the exact elements in the SQL from list:
color = "red" Color .from("colors c, JSONB_ARRAY_ELEMENTS(colored_things) AS colorvalues(colorvalue)") .where("colorvalue->>'color' = ?", color) .select("c.*").to_a # SELECT c.* # FROM colors c, JSONB_ARRAY_ELEMENTS(colored_things) AS colorvalues(colorvalue) # WHERE (colorvalue->>'color' = 'red')