0

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

我该怎么做?

谢谢

4

3 回答 3

0

尝试

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

split将以逗号分隔输入,map 将生成模型文本字段{ :field => i }在哪里的数组。:field

于 2012-07-27T13:56:22.997 回答
0

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

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
于 2012-07-27T13:56:35.607 回答
0

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

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

于 2012-07-27T14:00:59.580 回答