-1

在下面的代码部分中,我试图从存储在@record.main_id 中的 CSV 中提取一列。我正在拆分代码以获取每个逗号分隔值并将其存储在列 id 中的 MySQL 表 table_val 中。我需要将 main_id 的每个实例加载到 id 中,但不会加载重复的值。例如 2,3,4,6,4,6,8。我需要按顺序排列每个实例,但值被加载为 2、3、4、6、8。

def get_id
   @record.main_id.split(', ').map do |f|
    values = {
    id: f     
  }
  @att = Table_val.new(values)      

 end
4

2 回答 2

0

怎么样 :

def get_id
   @record.main_id.split(', ').sort.uniq.map do |f|
    values = {
    id: f     
  }
  @att = Table_val.new(values)      

 end

查看文档uniq以获取有关和的更多信息sort

于 2014-03-25T06:02:34.533 回答
0

假设@record.main_id给出一串昏迷,ids如:

"2,3,4,6,4,6,8"
# split(',') should give following array:
["2", "3", "4", "6", "4", "6", "8"]
#Now
["2", "3", "4", "6", "4", "6", "8"].map {|f| values = {id: f} }
#gives expected result:
[{:id=>"2"}, {:id=>"3"}, {:id=>"4"}, {:id=>"6"}, {:id=>"4"}, {:id=>"6"}, {:id=>"8"}]

所以它成功地得到了所有ids(有重复)并保持了序列,这不是目标吗?也许值从 CSV 或其他东西中弄乱了,放这段代码就可以了。

于 2014-03-25T07:01:19.977 回答