jQuery令牌输入不显示数据标签rails

时间:2018-05-07 00:06:05

标签: jquery ruby-on-rails

我正在尝试在我的rails应用程序中使用jQuery token-input gem。除了数据加载部分之外,我已经按预期工作了。当我创建一个包含多个plan的{​​{1}}并保存它时,它会像创建的那样创建记录。

当我回去编辑该计划时,没有任何材料出现。但是,正如我从下面看到的源代码中看到的那样,数据正在预加载到浏览器中。

materials

有人知道为什么不在现场显示数据吗?

Plans.coffee

<input data-tokeninput="{&quot;collection&quot;:[{&quot;id&quot;:2,&quot;title&quot;:&quot;test&quot;,&quot;goal&quot;:&quot;test&quot;,&quot;material_type&quot;:&quot;test&quot;,&quot;sharing&quot;:false,&quot;description&quot;:&quot;test&quot;,&quot;unit_id&quot;:null,&quot;created_at&quot;:&quot;2018-04-24T21:40:58.000Z&quot;,&quot;updated_at&quot;:&quot;2018-04-24T21:40:58.000Z&quot;,&quot;grade_id&quot;:6,&quot;user_id&quot;:1,&quot;subject_id&quot;:6,&quot;attachment_file_name&quot;:null,&quot;attachment_content_type&quot;:null,&quot;attachment_file_size&quot;:null,&quot;attachment_updated_at&quot;: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 %>

1 个答案:

答案 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>

我将进一步研究为什么会出现这种情况,并将在此答案中进行跟进。