Ruby on rails 用于在rails中存储检查表的模型设置

Ruby on rails 用于在rails中存储检查表的模型设置,ruby-on-rails,database,activerecord,checkbox,database-design,Ruby On Rails,Database,Activerecord,Checkbox,Database Design,我很难确定在Rails中存储检查表的最佳方法 在我的应用程序中,有些帐户有许多文档。我想在每个文档中添加一个清单,以便可以通过帐户配置清单项目所有文档都有相同的检查表(按帐户配置),但每个项目可能有不同的选中/未选中值。 设置将如下所示: Account Document1 ChecklistForDocument1 ChecklistItem1 - isCheckedForDocument1 ChecklistItem2 - isCheckedForDocu

我很难确定在Rails中存储检查表的最佳方法

在我的应用程序中,有些帐户有许多文档。我想在每个文档中添加一个清单,以便可以通过帐户配置清单项目所有文档都有相同的检查表(按帐户配置),但每个项目可能有不同的选中/未选中值。

设置将如下所示:

Account
  Document1
    ChecklistForDocument1
      ChecklistItem1 - isCheckedForDocument1
      ChecklistItem2 - isCheckedForDocument1
      ChecklistItem3 - isCheckedForDocument1

  Document2
    ChecklistForDocument2
      ChecklistItem1 - isCheckedForDocument2
      ChecklistItem2 - isCheckedForDocument2
      ChecklistItem3 - isCheckedForDocument2
我只是想知道如何设置模型/迁移来存储这些类型的检查表


我已经研究了其他几个问题,如和,但每个问题都与我的情况略有不同,这真的让我很反感。

为此,创建一个包含文档id和检查列表项目id的联接表

DocumentCheckListItem
  belongs_to :document
  belongs_to :check_list_item
然后更改现有模型

Document
  has_many :document_check_list_items
  has_many :check_list_items, :through => :document_check_list_items


CheckListItem
  has_many :document_check_list_items
  has_many :documents, :through => :document_check_list_items
然后,您只需参考
文档。检查代码中的项目列表

通过向此方法发送一个id数组来设置文档上的检查列表项

document.check_list_item_ids = [1,2,3,4,5]

这将设置值并连接关系。

那么DocumentCheckListItem关系将具有is\u checked属性,CheckListItem将具有item\u name属性?如何指定帐户设置哪些CheckListItems可用于帐户所拥有的文档?关系的存在表示“已检查”。如果在表单中取消选中该关系,则该关系将被破坏。CheckListItem对象上会有一个名称列,可以重复使用。好的,这很有意义,谢谢。我如何控制通过帐户模型可以使用哪些checklist项目呢?听起来好像
check\u list\u项目
上会有一个
帐户id
(并且
属于
)。您只需正常创建它们,并在编辑/创建文档时显示它们以生成复选框。注意,表单中的复选框是另一个挑战,但这是另一个问题,你最终会对此进行一些研究。关于这一点的问题可能是一个新问题。您必须确保它是控制器中允许的参数,还有其他问题可能会破坏这一点。在控制台中尝试一下,看看您是否可以访问这些方法。退房-