2

的JavaScript我有了像下面一個簡單的映射關係的Rails項目:jQuery的tokeninput在Rails3中

模型類

has_many :stories 

模型故事

belongs_to category 
在我的故事控制器

我有

def new 
@story = Story.new 
@categories = Category.all 
end 

然後在我的new.html.erb我有

<%= form_for @story do |f| %> 
<%= f.text_field, :title %> 
<%= collection_select(:story, :category_id, @categories, :id, :name)%> 
<% end %> 

我想<%= f.text_field%>(文本字段),以取代<%= collection_select %>(選擇框)和使用jquery toxeninput JavaScript的插件填充數據,我不知道如何去對這個。

回答

2

我最近添加的jQuery tokeninput到我的項目之一,並會盡力給一個粗略的一步一步的過程來完成它:

  1. 獲得令牌輸入JavaScript和CSS,並把它添加到HTML
  2. 在控制器中定義的方法search_category類似以下內容:

    def search_category 
        # find the matching categories, Category.search method should implement all the logic needed 
        categories = params[:q].blank? ? [] : Category.search(params[:q]) 
    
        render :json => categories.collect {|c| {:id => c.id, :name => c.name} } 
    end 
    
  3. 初始化jQuery的tokeninput類似以下內容:

    $("input#whatever").tokenInput("<%= search_category_path %>", { 
        prePopulate: [{ 
           id: "<%= @story.category.id %>", 
           name: "<%= @story.category.name %>" 
           }], 
        tokenLimit: 1 // limits only one selectable category 
    }); 
    

希望它有幫助!

+0

表單如何查找TokenInput部分? – LearningRoR

+2

窗體將是一個普通的'form_for @ story',並將category字段定義爲'f.text_field:category_id,:id =>'whatever'' – rubish

+0

好的,謝謝。也許你可以回答我的賞金,因爲它與你所做的非常相似。 http://stackoverflow.com/questions/6674127/how-to-use-jquery-tokeninput-and-acts-as-taggable-on-together – LearningRoR