2015-01-16 2 views
1

Я внедрил поле ввода токенов в моем приложении Rails 3. Вот соответствующий код:Rails tokenInput значения не перезагружаются

моей формы

<%= label_tag :tag_tokens, 'Tags' %> 
<%= text_field_tag 'tag_tokens', "data-pre" => params[:tag_tokens] %> 

$(function() { 
    $("#tag_tokens").tokenInput("/data/tags.json", { 
     crossDomain: false, 
     prePopulate: $("#tag_tokens").data("pre"), 
     theme: "facebook" 
    }); 

Это страница поиска, которая возвращает результаты. Входной токен вместе с возвращаемыми значениями замечательно работает. Проблема, с которой я сталкиваюсь, заключается в том, чтобы заставить значения оставаться/загружаться в текстовое поле после отправки страницы. Код "data-pre" => params[:tag_tokens] в text_field_tag ​​должен обрабатывать это, но не работать! Любая помощь оценивается.

ответ

1

Я нашел свою проблему, я использовал text_field_tag (не текстовое поле) там, где мне нужно было передать данные - как третий параметр (а не второй). Вот мой код для потомков.

вид

<%= label_tag :tag_tokens, 'Tags' %> 
<%= text_field_tag 'tag_tokens', nil, "data-pre" => @tag_token_names.to_json %> 

JS
$(function() { 
    $("#tag_tokens").tokenInput("/data/tags.json", { 
     crossDomain: false, 
     prePopulate: $("#tag_tokens").data("pre"), 
     theme: "facebook" 
    }); 
}); 
</script> 

маршруты
match "/tags" => "data#tags", :as => 'tag_token_search' 

контроллер

def tags 
    @tags = Tag.where("name like ?", "%#{params[:q]}%") 
    respond_to do |format| 
     format.html 
     format.json { render :json => @tags.map(&:attributes) } 
    end 
    end 
Смежные вопросы