所以我有一个文本字段,用户可以在其中放置逗号分隔的卡 ID,例如 1、2、3。当这个用户提交表单时,我想为他提交的每个 ID 创建一个新记录。所以一加一,一加二,一加三。
我该怎么做?
谢谢
所以我有一个文本字段,用户可以在其中放置逗号分隔的卡 ID,例如 1、2、3。当这个用户提交表单时,我想为他提交的每个 ID 创建一个新记录。所以一加一,一加二,一加三。
我该怎么做?
谢谢
尝试
ModelName.create(input_string.split(',').map{ |i| { :field => i.strip } })
split
将以逗号分隔输入,map 将生成模型文本字段{ :field => i }
在哪里的数组。:field
您必须从控制器中的文本字段解析输入值。例如:
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
有几种方法可以实现这一点,具体取决于您的具体需求。一种方法是遍历控制器中的所有条目,就像@rogal111 在他的回答中建议的那样。
如果您的用户和卡片之间存在一对多的关系,无论如何这很可能是要走的路,我建议您通过嵌套表单来完成它。瑞安·贝茨(Ryan Bates)对此做了一些出色的截屏视频。