두 인스턴스 값 : @a 및 @b가 있습니다. 해시와 비슷합니다 .... (의사 예제에서 설명 할 것입니다) 예를 들어 @ai의 경우 : @bi에서 Ruby에서 인스턴스 변수의 값을 다른 것으로부터 차감합니다.
*Field1 | Field2 | Field3*
CONTITECH | CT942K1 | 123
CONTITECH | CT722K1 | 123
ATE | AB2123 | 123
가 있습니다
CONTITECH | CT942K1 | 456
BREMBO | TE132 | 123
어떻게 @c = @a 것을 할 - @b는 @b에없는 유일한 값을 포함 할 것인가? 예를 들어
@c = @a - @b이 포함됩니다
CONTITECH | CT722K1 | 123
ATE | AB2123 | 123
을 그래서 단지 2 필드, 난 ... @b에서 @a 같은 값에서 동일 삭제해야하는 경우
예제를 통해 명확하게하지 않으면 주석으로 작성하십시오 .... 필자가 필요한 것은 @a의 모든 항목을 @b의 (field1 및 field2) 항목으로 모두 삭제하는 것입니다. 어떻게 수행합니까?
이 도움이 될 것입니다 경우 : 코드 : 이 @b입니다 (@articles) :
@articles = Article.find(:all, :conditions => ["ART_ID in (?) ", @search.map(&:ARL_ART_ID)])
및 @a (@non_original) : 내가 필요한
@non_original = []
nr_condition = "*" + art_nr.to_s.gsub(/[^0-9A-Za-z]/, '').upcase + "*"
if art_nr.length > 3
art = search_not_oem(art_nr)
@search = CrossList.find(:all, :conditions => ['MATCH (cross_value) AGAINST (? IN BOOLEAN MODE)', nr_condition])
if @search.present?
@prlist = PriceList.where("id IN (?)", @search.map(&:price_list_id))
if @prlist.present?
@prlist.each do |p|
#@all_supp = Supplier.all
#if @all_supp.find{|item| item.SUP_BRAND.gsub(/[^0-9A-Za-z]/, '').include?(p.brand.gsub(/[^0-9A-Za-z]/, '').upcase)} && art.present?
# logger.warn("!!!!!! if")
#else
@non_original << p
#end
end
end
end
end
@non_original
는 @res이다 = @non_original - @articles, 그들은
의사 코드 대신, @a와 @b를 설정하는 실제 루비 코드와 b의 결과를 알려주세요. –
@ FrederickCheung 거기에 표시되는 내용은 무엇입니까? 모두 DB에 있습니까? 또한 코드가 크고 아무 것도 표시하지 않습니다. –
@FrederickCheung은 –