作为可标记的行为,不添加带有角形的标签

时间:2017-01-12 17:38:23

标签: javascript ruby-on-rails angularjs acts-as-taggable-on

我有一个角形式,用于创建带有标签的对象:

<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表单一样提交到标记和标记表中。

Tag Test 234

有关该怎么做的任何建议?

2 个答案:

答案 0 :(得分:0)

更改强参数行:

params.require(beacon).permit([:tag_list])

到:

params.permit([:tag_list])

修复了tag_list没有提交到tags表的问题。我知道这不是优选的,但它是迄今为止我找到的唯一解决方案。

答案 1 :(得分:0)

请求中的

"tag_list" => "Test 234"显示它是作为文本而不是数组传入的。你需要让它作为数组传递。

此外,您需要确保allowed_pa​​rams允许标记列表作为数组。 params.require(beacon).permit(tag_list: [])