-1

以下のコードのセクションでは、@record.main_id に保存されている CSV から列を抽出しようとしています。コードを分割して、すべてのコンマ区切り値を取得し、それを MySQL テーブル table_val の列 ID に格納します。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

次のような@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 に答える