Rails:在 HABTM 关系中将子项从大型记录集添加到父模型的 UI

Posted

技术标签:

【中文标题】Rails:在 HABTM 关系中将子项从大型记录集添加到父模型的 UI【英文标题】:Rails: UI to add children from large record set to parent model in HABTM relationship 【发布时间】:2010-07-05 19:30:20 【问题描述】:

鉴于父/子HABTM关系:

class List < ActiveRecord::Base
  has_and_belongs_to_many :items
end

class Item < ActiveRecord::Base
  has_and_belongs_to_many :lists
end

我需要设置一个 UI 以从列表创建/编辑表单将项目(子项)添加到列表(父项)。问题是有太多的 Items 记录无法使用复选框。最初的想法是有一个弹出窗口,允许用户浏览项目集合以查找要添加的记录,但我不确定这将如何处理新的列表记录(父 ID 尚不存在) .我正在寻找一种解决方案,使用户能够轻松地浏览大量子记录,并以直观的方式将它们添加到父记录,而所需的点击次数最少。

用户需要能够浏览项目记录以找到可接受的选择,因此强制用户搜索他们想要的记录的自动完成文本框在这种情况下将不起作用。子项记录由多个属性(例如标题、作者、流派、评级)组织,所以我最初的计划是使用 AJAX 过滤器和排序的项记录设置一个表,以允许用户将项目集合缩小到所需的元素,然后以某种方式将选定的记录添加到列表中。用户不需要能够在创建列表时定义新的项目记录(即,在创建列表时,用户只需从现有集合中选择多个项目)。

【问题讨论】:

【参考方案1】:

我喜欢这样的查找的自动完成文本框;这取决于您的子数据集是否足够直观以供用户猜测。

【讨论】:

这是一个很好的建议,尽管在当前情况下,通过在文本框中键入将不容易找到子记录。子项需要进行排序和过滤,并且通过浏览而不是搜索更有可能找到。 好的,那么也许可以通过描述应用程序的工作流程来解决问题。用户将如何设置列表和项目?通过创建一个列表,然后选择要添加到其中的项目?另外:物品可以分类吗? [选择 food-isle 再选择 food-item]

以上是关于Rails:在 HABTM 关系中将子项从大型记录集添加到父模型的 UI的主要内容,如果未能解决你的问题,请参考以下文章

使用 HABTM 关系更新复选框的值——Rails

Rails 搜索 HABTM 关系中的关联模型

Rails中使用的HABTM关系MySQL表

Rails HABTM 关联:记录未插入连接表

CakePHP 从一个 habtm 返回多条记录

HABTM 多态关系