例如,我有项目和类别模型:
# project.rb
has_and_belongs_to_many :categories
# category.rb
has_and_belongs_to_many :projects
在前端我需要:
- 显示项目类别名称的输入
- 按名称建议/自动完成类别(如果存在)
- 如果它不存在,我需要 动态创建它并将名称粘贴到输入和保存 ID 中,然后 当用户提交表单时将 ID 发送到服务器。
因此,我有类别 Controller ,它有方法search 和create。搜索以 JSON 格式返回建议类别的 ID 和 NAME 对;创建将类别保存到数据库中,并在用户将新类别提交到输入时返回 ID 和 NAME 对。 它是关于多个类别输入的。
此外,在网站的其他部分,我们可以遇到模型,它们使用的类别模型不是 has_and_belongs_to,而是 belongs_to。在那里,我需要显示具有单个 类别值的选择框,但具有与多个输入相同的逻辑。
Select2 或 selectize libs 涵盖了我的大部分问题,但我不知道如何将 ID 而不是名称保存到输入中,以及如何将类别名称呈现到输入中并在用户提交表单时发送 ID。
是否有任何库或技术可以解决这个问题?
最佳答案
我推荐观看 Ryan Bates 的精彩 RailsCasts episode对此。他演示了您描述的 find_or_create
类型的功能,但使用的是 jQuery Tokeninput 库。
如果您致力于使用 select2,则可以在后端使用与 Ryan 类似的方法,同时使用 Tagging support在 select2 中。
关于javascript - Rails 选择建议和远程数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30187117/