2011-02-02 44 views
0

最近,我開始使用https://github.com/crowdint/rails3-jquery-autocomplete修改方法,並利用PARAMS

它的偉大工程,但我想設置爲我autocompleteing結果的範圍,在這個問題上我有一個很好的答案:Scoping the results for rails3 jquery autocomplete plugin

使用克勞迪奧的代碼,我已經成功地作用域爲這樣:

class PostsController < ApplicationController 
    autocomplete :post, :title 

    def get_items(parameters) 
     Post.where(:user_id => current_user.id) 
    end 

這工作,因爲我改寫插件的get_items方法。你可以在這裏看到:https://github.com/crowdint/rails3-jquery-autocomplete/commit/b3c18ac92ced2932ac6e9d17237343b512d2144d#L1R84(我有這個提交之前的版本,所以get_items仍然適用於我)。

我的範圍問題是自動完成功能不再有效。當人開始輸入時,彈出get_items中指定的列表,而不是從該列表中建議的項目。

我假設我正在做我的覆蓋方法有問題。有任何想法嗎?

最佳, 埃利奧特

回答

3

你只是讓我意識到,覆蓋get_items不靈活,因爲它應該是。

你的代碼是缺少參數的使用[:條款]

像這樣的東西應該使其工作:

def get_items(parameters) 
    Post.where(:user_id => current_user.id).where(['title LIKE ?', "#{parameters[:term]}%"] 
end 

這完全是不友好的,我會盡力的東西,使工作更有意義

或者,也許一個:自動完成聲明的範圍選項更有意義?

+0

謝謝你!我一回家就會試試這個! – Elliot 2011-02-03 21:18:23

0

如果您有多個字段的自動完成功能,該怎麼辦?例如,假設你想將它應用於標題和作者。你將如何重寫以下內容,以便可以兼顧兩者?

自動完成:音符,:標題,:滿=>真 自動完成:音符,:作者,:滿=>真

DEF get_items(參數) Note.select( 「不同標題」),其中。 ([「title LIKE?」,「#{parameters [:term]}%」]) end

目前只適用於標題字段。它會殺死作者字段的自動填充。