2011-05-30 78 views
1

我正嘗試將數據預先填充到令牌輸入字段。Rails幫助預先填充數據 - 令牌輸入字段

但是我的編輯視圖中沒有預填充任何東西。

我跟了這railscast:http://railscasts.com/episodes/258-token-fields

我的控制器:

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" 
    }); 
}); 

我編輯觀點:

<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 %> 

令牌場輸出:

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

回答

3

嘗試包裝你的數據與之前在input_html您編輯觀點:

:input_html => {"data-pre" => @konkurrancer.tags.map(&:attributes).to_json } 

*您使用simple_form而railscasts不是。