我正在尝试将数据预填充到 token 输入字段。
但我的编辑 View 中没有任何预填充内容。
我关注了这个 railscast:http://railscasts.com/episodes/258-token-fields
我的 Controller :
class Admin::TagsController < Admin::AdminController
layout 'admin'
def index
@title = 'asdsadas'
@kategoris = Tag.where("name like ?", "%#{params[:q]}%")
respond_to do |format|
format.html
format.json { render :json => @kategoris.map(&:attributes) }
end
end
end
我的 application.js:
// Place your application-specific JavaScript functions and classes here
// This file is automatically included by javascript_include_tag :defaults
$(function() {
$("#konkurrancer_tag_tokens").tokenInput("http://localhost:3000/admin/tags.json", {
crossDomain: false,
prePopulate: $("#konkurrancer_tag_tokens").data("pre"),
theme: "facebook"
});
});
我的编辑 View :
<h1>Editing kategori</h1>
<%= simple_form_for(@konkurrancer, :url => {:action => 'update', :id => @konkurrancer.id }) do |f| %>
<%= f.input :tag_tokens, :label => 'Tags', "data-pre" => @konkurrancer.tags.map(&:attributes).to_json %>
<%= f.button :submit, :value => 'Edit konkurrence' %>
<% end %>
token 字段输出:
<div class="input string optional">
<label for="konkurrancer_tag_tokens" class="string optional"> Tags</label>
<ul class="token-input-list-facebook"><li class="token-input-input-token-facebook">
<input type="text" autocomplete="off" style="outline: medium none; width: 30px;">
<tester style="position: absolute; top: -9999px; left: -9999px; width: auto; font-size: 13.3333px; font-family: MS Shell Dlg; font-weight: 400; letter-spacing: normal; white-space: nowrap;"></tester></li></ul>
<input type="text" size="50" name="konkurrancer[tag_tokens]" id="konkurrancer_tag_tokens" class="string optional" style="display: none;"></div>
最佳答案
尝试在您的编辑 View 中使用 input_html 包装您的数据前置:
:input_html => {"data-pre" => @konkurrancer.tags.map(&:attributes).to_json }
* 您使用的是 simple_form 而 railscasts 不是。
关于ruby-on-rails - Rails 帮助预填充数据 - token 输入字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6180029/