根据这个线程,我试图让我的代码显示在您显示编辑视图时已经检查了哪些项目。所有其他字段均已预先填充。
这是我目前的方式:
%fieldset.border.border-dark.p-2.mb-4
%legend Pronouns
.row.mb-4
= f.collection_check_boxes :pronouns, pronoun_list, :itself, :itself, {include_hidden: false} do |b|
.col-md-4.d-grid.d-block.mb-2
= b.check_box(class: "btn-check", checked: @member.pronouns.split(",").map(&:itself))
= b.label(:"data-value" => b.value, class: "btn btn-outline-dark text-start btn-lg")
.form-group.mb-4
= f.label :pronouns_other, "Other Pronouns"
= f.text_field :pronouns_other, class: "form-control border border-dark"
我需要调用 include_hidden: false 否则数组包含一个空白项作为数组中的第一个。
这是它所指的辅助方法:
def pronoun_list
[
"He/Him/His",
"She/Her/Hers",
"They/Them/Their",
"Zie/Zim/Zir",
"Sie/Sie/Hir",
"Ey/Em/Eir",
"Ve/Ver/Vis",
"Tey/Ter/Tem",
"E/Em/Eir",
"Prefer not to disclose"
]
end
与其他线程不同的是,我使用辅助方法来调用项目集合,而其他线程正在调用数据库中的对象集合。所以我不确定我应该如何首先获得身份证。
@member.pronouns 是一个包含数组的字符串(我正在使用 PostgresQL),所以首先我需要将它转换为我假设的数组,因为我在其他地方阅读,然后我可以调用它的 map。但是虽然 .map(&:itself) 没有返回任何错误,但在呈现编辑视图时不会检查代词字符串中列出的项目。
有任何想法吗?