解决方法是使用JavaScript来动态生成表单标签,并将生成的字段添加到Rails表单中。以下是一个示例代码:
在Rails的视图文件中,添加一个空的表单标签,用于将动态生成的字段添加到表单中:
<%= form_with(model: @model, local: true) do |form| %>
...
<%= form.submit %>
<% end %>
然后,在JavaScript文件中,使用jQuery或其他类似的库来处理动态字段的生成和添加:
$(document).ready(function() {
// 获取动态字段的数据
var dynamicFieldsData = [{ name: 'field1', type: 'text' }, { name: 'field2', type: 'checkbox' }];
// 生成动态字段的HTML代码
var dynamicFieldsHtml = '';
dynamicFieldsData.forEach(function(field) {
dynamicFieldsHtml += '';
dynamicFieldsHtml += '';
});
// 将动态字段添加到表单中
$('#dynamic-fields').html(dynamicFieldsHtml);
});
以上代码将根据dynamicFieldsData
数组中的数据生成动态字段的HTML代码,并将其添加到#dynamic-fields
元素中。这样,动态生成的字段就会被包含在Rails的表单中,可以被正确识别和提交。