2012-06-07 61 views
0

我試圖在字段上運行tokeninput插件。令牌輸入在rails中不起作用

首先教程主要是圍繞增加的ID從另一個關聯的模型。我不想這樣做,只是使用我自己的模型(表格)中的一個字段,名稱爲tags

目前當我鍵入它行動/notes/tags.json Ajax調用,而是返回什麼都沒有,我是這樣做的權利?

控制器:

class NotesController < ApplicationController 
    helper_method :sort_column, :sort_direction 
    respond_to :html, :json 

    def index 
    @notes = Note.search(params[:search]).order(sort_column + " " + sort_direction).paginate(:per_page => 5, :page => params[:page]) 
    @tag = Note.where('tag LIKE ?', "%#{params[:q]}%") 
    end 

型號:

class Note < ActiveRecord::Base 
    attr_accessible :name, :tag 

    def self.search(search) 
    if search 
     where('name LIKE ?', "%#{search}%") 
    else 
     scoped 
    end 
    end 
end 
+0

你有沒有設置路線? –

+0

也我想你想這個:http://jqueryui.com/demos/autocomplete/#multiple-remote –

+0

我的路線只是正常的'資源:筆記'我的意思是不同的東西?也應該令牌輸入與我如何使用它的工作?反正我甚至沒有得到json的回報。 – user979587

回答

1

確定:這是一個粗略的但使用jquery自動完成工作示例

https://github.com/glennmartinez/QaBase/pull/1

的步驟如下:

  • 做出響應JSON請求的路由(I劫持index操作)
  • 要麼聲明的路徑或在該文本字段例如data-autocomplete-source屬性數據本身:<%= f.text_area :my_token_field, 'data-autocomplete-source' => features_path
  • 創建其附着的JavaScript到外地引用ID(檢查這個HTML源代碼)
  • 提交表單,並在檢查記錄器的請求後,哈希和運行任何before_save轉換你需要下地幹活了。

使用TOKENINPUT及以下http://railscasts.com/episodes/258-token-fields並查看插件頁面上,預計數據將在此格式

[ 
    {"id":"856","name":"House"}, 
    {"id":"1035","name":"Desperate Housewives"}, 
    ... 
] 

您可以創建通過引用一些在ID不同的是相同的哈希的例子。 。例如

Notes.all.map { |n| {:id => n.tag, :name => n.name } }.to_json 

這將產生類似:

[ 
    {"id":"tagname","name":"House"}, 
    {"id":"othertagname","name":"Desperate Housewives"}, 
    ... 
] 

然後,您可以通過標籤名稱告訴響應字段以搜索表格。

當然,你需要爲了只管理1個返回記錄創造某種這些獨特性。

我希望這會有所幫助。

+0

嗨,我已經合併你的拉請求和自動完成的東西不存在,只有空白刪除,我真的不需要。 – user979587

+0

請使用github問題來進一步調試 –