首页 > 解决方案 > 在 ruby​​ 中添加到 id 的数据库列表中

问题描述

我有这个 id 列表

"recipients"=>"1702356,1702328,1702329,1702357,1702358,1702359,1702331,1702332,1702360,1714240,1702361,1702363,1702364,1702334,1718481,1702336,1714996,1702337,1702365,1714289,1718984,1702338,1702340,1702367,1702341,1702343,1702345,1702368,1702369,1702370,1702346,1702348,1702350,1702352,1702371,1714998,1702372,1702354,1718763"

此列表未修复,我选择我收到的学生作为 id 的参数列表。我想在数据库中添加每个 id,如下所示:

   @recipient = params[:recipients]
        @recipient.each do |k|   
    @recipient = Recipient.create(:e_id => @id, :r_id =>k, :td_id =>@f, :student_id =>k, :s_id =>@current_user.s_id )  
            logger.info "recipient added ... 123456789"
            end

不工作只添加了 1 个 id 并在日志 1 中打印"recipient added ... 123456789"

我的代码有什么问题?

标签: ruby-on-railsruby

解决方案


看起来您的recipient列表是一个字符串,您需要先将其拆分为各个 id:

@recipients = params[:recipients].split(',').map do |student_id|  
   Recipient.create(
     e_id: @id, 
     r_id: k, 
     td_id: @f, 
     student_id: student_id, 
     s_id: @current_user.s_id 
   )  
   logger.info "recipient added ... #{student_id}"
end

推荐阅读