instance method
query_constraints
Ruby on Rails 7.1.6
Since v7.1.6Signature
query_constraints(*columns_list)
Accepts a list of attribute names to be used in the WHERE clause of SELECT / UPDATE / DELETE queries and in the ORDER BY clause for #first and #last finder methods.
class Developer < ActiveRecord::Base query_constraints :company_id, :id end developer = Developer.first # SELECT "developers".* FROM "developers" ORDER BY "developers"."company_id" ASC, "developers"."id" ASC LIMIT 1 developer.inspect # => #<Developer id: 1, company_id: 1, ...> developer.update!(name: "Nikita") # UPDATE "developers" SET "name" = 'Nikita' WHERE "developers"."company_id" = 1 AND "developers"."id" = 1 # It is possible to update an attribute used in the query_constraints clause: developer.update!(company_id: 2) # UPDATE "developers" SET "company_id" = 2 WHERE "developers"."company_id" = 1 AND "developers"."id" = 1 developer.name = "Bob" developer.save! # UPDATE "developers" SET "name" = 'Bob' WHERE "developers"."company_id" = 1 AND "developers"."id" = 1 developer.destroy! # DELETE FROM "developers" WHERE "developers"."company_id" = 1 AND "developers"."id" = 1 developer.delete # DELETE FROM "developers" WHERE "developers"."company_id" = 1 AND "developers"."id" = 1 developer.reload # SELECT "developers".* FROM "developers" WHERE "developers"."company_id" = 1 AND "developers"."id" = 1 LIMIT 1
Parameters
-
columns_listrest
Source
# File activerecord/lib/active_record/persistence.rb, line 488
def query_constraints(*columns_list)
raise ArgumentError, "You must specify at least one column to be used in querying" if columns_list.empty?
@query_constraints_list = columns_list.map(&:to_s)
@has_query_constraints = @query_constraints_list
end
Defined in activerecord/lib/active_record/persistence.rb line 488
· View on GitHub
· Improve this page
· Find usages on GitHub
Defined in ActiveRecord::Persistence::ClassMethods