Я пытаюсь использовать камень jQuery token-input
в своем приложении rails. Я получил это работает, как ожидалось, за исключением части загрузки данных. Когда я создаю plan
с несколькими materials
и сохраняю его, он создает запись, как и предполагалось.
Когда я возвращаюсь к редактированию этого плана, никакие материалы не отображаются. Однако данные предварительно загружаются в браузер, как я вижу из исходного кода, показанного ниже.
<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;">
Кто-нибудь знает, почему это не отображает данные в поле?
Plans.coffee
jQuery ->
$('#plan_material_tokens').tokenInput('/materials.json', { propertyToSearch: 'title' });
prePopulate: $('#plan_material_tokens').data('load')
_form.html.erb
<%= 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 %>
Контроллер материалов (откуда он извлекает данные json)
def index
@materials = current_user.materials
respond_to do |format|
format.html
format.json { render json: @materials.where("title LIKE ?", "%#{params[:q]}%") }
end
end