【问题标题】:Creating multiple records at once from comma seperated IDs从逗号分隔的 ID 一次创建多个记录
【发布时间】:2012-07-26 05:09:08
【问题描述】:

所以我有一个文本字段,用户可以在其中放置逗号分隔的卡 ID,例如 1、2、3。当这个用户提交表单时,我想为他提交的每个 ID 创建一个新记录。所以一拖一,一拖二,一拖三。

我该怎么做?

谢谢

【问题讨论】:

标签: ruby-on-rails ruby-on-rails-3


【解决方案1】:

有几种方法可以实现这一点,具体取决于您的具体需求。 一种方法是遍历控制器中的所有条目,就像@rogal111 在他的回答中建议的那样。

如果您的用户和卡片之间存在一对多关系,无论如何这很可能是要走的路,我建议您通过嵌套表单来完成它。瑞安·贝茨在 screencasts 上做了一些出色的工作。

【讨论】:

    【解决方案2】:

    您必须从控制器中的文本字段解析输入值。 例如:

    def update
       ids_input=params[:ids]
       ids_input.split(',').each { |id|
          Card.create(:some_id=>id,:other_column=>'some_value',:related_user=>current_user)
       }
    end
    

    【讨论】:

      【解决方案3】:

      试试

      ModelName.create(input_string.split(',').map{ |i| { :field => i.strip } })
      

      split 将以逗号分隔输入,map 将生成一个 { :field => i } 数组,其中 :field 是您模型的文本字段。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2020-04-17
        • 2017-08-28
        • 1970-01-01
        • 1970-01-01
        • 2015-07-30
        • 2011-12-06
        • 1970-01-01
        • 2019-03-07
        相关资源
        最近更新 更多