Rails在数据库中插入动态字段
Rails insert dynamic fields into the database
我有一个简单的应用程序,它只有一个模型(任务)和一个属性(名称)。
app/views/tasks/_form.html.erb
<%= form_tag :action => 'create' %>
<div id="dynamicInput">
Task Name <input type="text" name="task[name][]">
</div>
<input type="button" value="Add New Tag" onClick="addInput('dynamicInput');">
<%= submit_tag "Create"%>
app/assets/javascripts/application.js
var counter = 1;
function addInput(divName){
var newdiv = document.createElement('div');
newdiv.innerHTML = "Task Name <input type='text' name='task[name][]'>";
document.getElementById(divName).appendChild(newdiv);
counter++;
}
上面的代码允许我添加任意数量的字段。我可以输入一个名称,但如果我动态添加2个字段,以下是我的params的样子。。。
Started POST "/tasks" for 127.0.0.1 at 2013-07-25 12:36:57 -0400
Processing by TasksController#create as HTML
Parameters: {"utf8"=>"✓", "authenticity_token"=>"PnTQnxM3GFRtqkXi09jLH8UJBiaRCI0chSZ716cVWJ0=", "task"=>{"name"=>["name1", "name2"]}, "commit"=>"Create"}
(0.1ms) begin transaction
SQL (5.6ms) INSERT INTO "tasks" ("created_at", "name", "updated_at") VALUES (?, ?, ?) [["created_at", Thu, 25 Jul 2013 16:36:57 UTC +00:00], ["name", ["name1", "name2"]], ["updated_at", Thu, 25 Jul 2013 16:36:57 UTC +00:00]]
(153.1ms) commit transaction
Redirected to http://localhost:3000/tasks/1
Completed 302 Found in 165ms (ActiveRecord: 158.7ms)
我希望为输入的每个名称指定一个单独的任务/名称。
在Rails4中,强参数功能要求您在控制器内将参数列入白名单。此外,根据这里的答案,如果不进一步调整,一组参数就不能被列入白名单,所以你需要
params.require(:task).permit(name: [])
相关文章:
- 如何在谷歌表单中添加动态字段
- 自动填充动态字段上的 ajax 响应
- Jquery mobile中的Jquery动态字段
- 向Uploadify添加动态字段
- JavaScript RegEx - 加载十六进制或空字符串的动态字段
- 通过电子邮件提交带有动态字段的表单
- 引导日期时间选取器不适用于动态字段
- 车把动态字段名称
- 具有 ng-repeat(ng-repeat)中动态字段名称的自定义指令
- 我有一个问题,使用 Javascript 或 Jquery 创建具有字符串计数的动态字段
- 多选更改创建动态字段
- 添加动态字段以创建特定的 JSON 格式
- Ajax 自动填充不适用于动态字段,但不适用于静态字段
- JQuery 动态字段(拼音页)
- Extjs 4 : 单击按钮时将动态字段添加到表单中
- 动态字段上的 AJAX 自动完成
- 如何根据 laravel 中的用户输入创建动态字段
- 单击即可添加2个动态字段
- 如何使用计数器添加动态字段以限制jQuery中的字段数
- 可以't在使用node js将动态字段值插入mysql DB时,在发送头之后设置头