일을해야한다고 생각 사용하는 경우 Relation.where(part: ['v03', 'v04']).uniq.pluck(:car)
여기를 전체 예 :
개
require 'active_record'
ActiveRecord::Base.establish_connection adapter: 'sqlite3', database: ':memory:'
ActiveRecord::Schema.define do
self.verbose = false
create_table :relations do |t|
t.string :part
t.string :car
end
end
Relation = Class.new ActiveRecord::Base
# build the relations (btw, this name makes no sense)
Relation.create! car: 'f01', part: 'v03'
Relation.create! car: 'f03', part: 'v03'
Relation.create! car: 'f03', part: 'v04'
Relation.create! car: 'f04', part: 'v04'
# querying
Relation.where(part: "v04").pluck(:car) # => ["f03", "f04"]
Relation.where(part: "v03").pluck(:car) # => ["f01", "f03"]
Relation.where(part: ['v03', 'v04']).uniq.pluck(:car) # => ["f01", "f03", "f04"]
일부의 생각 :
당신이 그 (것)들을 인스턴스 변수가 될하려는 경우가 아니면
이 변수 앞에 asperands을 넣지 마십시오 (예를 들어, @a
은 분명히 a
이어야하며 더 나은 이름이 좋습니다. 위의 그림과 같이 모두 없앨 수 있습니다.)오히려 데이터베이스에 고유성을 이동하기 때문에 SELECT car FROM "relations" WHERE "relations"."part" = 'v04'
액티브에 .uniq
를 사용하는 것이 좋습니다 SELECT "relations".* FROM "relations" WHERE "relations"."part" = 'v04'
대 :: 관계 : 뽑는다는 관련 데이터를 선택하기 때문에
지도에 비해 당기기를 사용하는 것이 좋습니다 Ruby로 메모리에서 시도하는 것보다 : SELECT DISTINCT car FROM "relations" WHERE "relations"."part" IN ('v03', 'v04')
주문이 중요합니까? –
레일을 사용하고 있습니까? –