我有一个角形式,用于创建带有标签的对象:
<form class="form-horizontal" ng-submit="createBeacon(beaconData)">
<div class="form-group">
<label>Tags</label>
<div id="tags-list" data-current-user-company="{{current_user.company_id}}">
<input type="text" id="tags-input" class="form-control" ng-model="beaconData.tag_list" name="beacon[tag_list]" placeholder="project, client 72, yellow, design"/>
</div>
</div>
此表单提交给带有工厂的rails控制器以提交到数据库。这是提交数据的功能:
$scope.createBeacon = function(beacon){
Beacon.save({
alias: beacon.alias,
description: beacon.description,
status: beacon.status,
company_id: currentUser.company_id,
venue_id: beacon.venue_id,
beacon_id: beacon.beacon_id,
tag_list: beacon.tag_list
});
}
结果是tag_list作为参数传递给Rails,如下面的服务器日志中所示,但它不会像使用Rails表单一样提交到标记和标记表中。
有关该怎么做的任何建议?
答案 0 :(得分:0)
更改强参数行:
params.require(beacon).permit([:tag_list])
到:
params.permit([:tag_list])
修复了tag_list没有提交到tags表的问题。我知道这不是优选的,但它是迄今为止我找到的唯一解决方案。
答案 1 :(得分:0)
"tag_list" => "Test 234"
显示它是作为文本而不是数组传入的。你需要让它作为数组传递。
此外,您需要确保allowed_params允许标记列表作为数组。
params.require(beacon).permit(tag_list: [])