充当可标记的,不添加具有 angular 形式的标签
Acts as taggable not adding tags with an angular form
我有一个 angular 表单正在创建一个带有标签的对象:
<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 形式。
对这里的操作有什么建议吗?
更改强参数行来自:
params.require(beacon).permit([:tag_list])
至:
params.permit([:tag_list])
修复了 tag_list 未提交标签 table 的问题。我知道这不是可取的,但这是迄今为止我找到的唯一解决方案。
"tag_list" => "Test 234"
在您的请求中显示它是作为文本而不是数组传入的。您需要将其作为数组传递。
您还需要确保 permitted_params 允许标签列表作为数组。
params.require(beacon).permit(tag_list: [])
我有一个 angular 表单正在创建一个带有标签的对象:
<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 形式。
对这里的操作有什么建议吗?
更改强参数行来自:
params.require(beacon).permit([:tag_list])
至:
params.permit([:tag_list])
修复了 tag_list 未提交标签 table 的问题。我知道这不是可取的,但这是迄今为止我找到的唯一解决方案。
"tag_list" => "Test 234"
在您的请求中显示它是作为文本而不是数组传入的。您需要将其作为数组传递。
您还需要确保 permitted_params 允许标签列表作为数组。
params.require(beacon).permit(tag_list: [])