从逗号分隔的ID一次创建多个记录

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

我该怎么办?

谢谢

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

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 

尝试

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

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

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

如果你的用户和卡之间有一对多的关系,这很可能是最后的方式,我建议你通过嵌套的forms完成它。 莱恩贝茨已经完成了一些优秀的截屏video 。