我在extJS中有2个多选择者(受访者组和jsut受访者)。 Erery受访者有一组(仅1人)。
在这里,我如何选择我的ID ...
我得到respondent_group id,例如= 1
respondent_ids = params[:selected_respondents].split(/,/).collect {|r| r.to_i}
这里我得到的受访者ID:3,4,1
respondent_pure_ids = params[:selected_alone_respondents].split(/,/).collect {|r| r.to_i}
在这里我找到了小组中的受访者(例如我有10个小组,每个小组有1-3个受访者)。
respondents = Respondent.find(:all, :conditions => ["respondent_group_id in (?) AND id NOT IN (?)", respondent_ids, session[:user].id])
我找到了受访者。
respondents_alone = Respondent.find(:all, :conditions => ["id in (?) AND id NOT IN (?)", respondent_pure_ids, session[:user].id])
在这里,我找到了受访者(我发现id在哪里,respondent_group =?)并向他们发送电子邮件。
respondents.each do |r|
Notifier.deliver_inquiry_notification()
end
我想要什么?
我得到了respondents
和respondents_alone
个ID。
For example respondents = 3 , 4 , 6
respondents_ alone = 3, 5, 6, 8
我两个都有3个和6个ID。我不想公开我的数据。如何检查:如果受访者ID不等于respondent_alone ID我发送EMAIL其他错误!
答案 0 :(得分:2)
您可以使用ruby数组算法来获取两个数组之间的差异,或者只获取每个条目一次:
a = [3, 4, 6]
b = [3, 5, 6, 8]
a - b # [4] (only a without any element of b, difference)
b - a # [5, 8] (only b without any element of a, difference)
a | b # [3, 4, 6, 5, 8] (complete set of all ids, union)
a & b # [3, 6] (ids same in both arrays, intersection)
使用此功能,您可以检查某些ID是仅在一个阵列中还是在两个阵列中,例如差异为空或a|b==a&b
=>两者都是平等的