我正在尝试在我的rails应用程序中使用jQuery token-input
gem。除了数据加载部分之外,我已经按预期工作了。当我创建一个包含多个plan
的{{1}}并保存它时,它会像创建的那样创建记录。
当我回去编辑该计划时,没有任何材料出现。但是,正如我从下面看到的源代码中看到的那样,数据正在预加载到浏览器中。
materials
有人知道为什么不在现场显示数据吗?
Plans.coffee
<input data-tokeninput="{"collection":[{"id":2,"title":"test","goal":"test","material_type":"test","sharing":false,"description":"test","unit_id":null,"created_at":"2018-04-24T21:40:58.000Z","updated_at":"2018-04-24T21:40:58.000Z","grade_id":6,"user_id":1,"subject_id":6,"attachment_file_name":null,"attachment_content_type":null,"attachment_file_size":null,"attachment_updated_at":null}]}" type="text" name="plan[material_tokens]" id="plan_material_tokens" style="display: none;">
_form.html.erb
jQuery ->
$('#plan_material_tokens').tokenInput('/materials.json', { propertyToSearch: 'title' });
prePopulate: $('#plan_material_tokens').data('load')
材质控制器(从中拉出json数据)
<%= form_for @plan do |form| %>
<div class="form-group">
<%= form.label :name %>
<%= form.text_field :name, class: 'form-control' %>
</div>
<div class="form-group">
<%= form.label :material_tokens, "Materials" %>
<%= form.text_field :material_tokens, data: { load: @plan.materials }%>
</div>
<%= form.submit %>
<% end %>
答案 0 :(得分:0)
对于其他有此问题的人来说,这是帮助我的解决方案。
而不是将数据加载器称为select col 1 from table where col1 like '%'|| chr(10) || '%';
,而是将其更改为load
,如下所示。
_form.html.erb
pre
plans.coffee
<div class="form-group">
<%= form.label :material_tokens, "Materials" %>
<%= form.text_field :material_tokens, data: { pre: @plan.materials.to_json }%>
</div>
我将进一步研究为什么会出现这种情况,并将在此答案中进行跟进。