Rails значения tokenInput не перезагружаются
Я реализовал поле ввода токена в своем приложении Rails 3. Вот соответствующий код:
моя форма
<%= 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
(не text_field) там мне нужно было передать data-pre в качестве 3-го параметра (не 2-го). Вот весь мой код для потомков.
Посмотреть
<%= 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