我的(很长,我很抱歉)问题是一个后续问题:如何将带有自动完成功能的标签添加到 Rails 中的现有模型?
我正在使用acts-as-taggable-on
and rails3-jquery-autocomplete
,并尝试建立一个系统(很像 Stack Overflow),用户开始输入标签,建议出现在下拉框中。
目标
我在答案#new 表单中,我想查看与问题相关的标签列表。即想象一下正在寻找新的 Rails 问题来回答,并搜索ra
. Ruby-on-Rails
弹出,单击它,您会在 RoR 下看到一个问题列表,您可以回答其中的任何一个。
这些是我采取的步骤。
- 安装了两个宝石。两者似乎都在自己工作。
- 添加
<%= javascript_include_tag "ui/jquery.ui.position", "ui/jquery.ui.autocomplete", "autocomplete-rails.js", "rails.js", "application.js" %>
. (我已经有了 Jquery、UI Core 和 UI Effects。) - 答案控制器:我在顶部添加
autocomplete :question, :tags, :full => true
。我也试过了autocomplete :tag, :name, :full => true
。 - 问题.rb
acts_as_taggable_on :tags
:。 - 看法:
<%= form_tag new_answer_url, :method => "get" do %>
<%= autocomplete_field_tag "tag_list", 'tags', autocomplete_question_tags_answers_path %>
<% end %>
一个简单的自动完成(无标记)可以工作(但每次页面加载只能工作一次)。使用标记,没有成功。
问题
经过大量实验(和许多小时),我遇到了这些问题:
- 我得到
NameError (unitialized constant Tag)
服务器对初始条目的响应。 - 使用不可标记的实现(搜索简单的问题文本本身),我得到一个 JQuery 自动完成样式的下拉菜单,但我的光标无法使用 up/down 访问选项。我必须用鼠标点击它们。此外,除非我重新加载页面,否则下拉菜单不会消失!
- 在服务器响应一次结果后(只有不可标记的工作正如我提到的那样),它不会再次响应按键或文本条目中的更改。
我将非常感谢您能够提供的任何帮助。我已经逐步完成了一些教程,但今天没有运气。