instance method
from
Ruby on Rails 8.1.2
Since v3.0.20Signature
from(value, subquery_name = nil)
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')
Parameters
-
valuereq -
subquery_nameopt = nil
Source
# File activerecord/lib/active_record/relation/query_methods.rb, line 1392
def from(value, subquery_name = nil)
spawn.from!(value, subquery_name)
end
Defined in activerecord/lib/active_record/relation/query_methods.rb line 1392
· View on GitHub
· Improve this page
· Find usages on GitHub
Defined in ActiveRecord::QueryMethods