我有一个simple_form输入字段,如下所示:
<%= f.input :parents, collection: (@node.family_tree.nodes - @node.parents - [@node]).uniq, label: "Parent 1" %>
但这会产生这样的HTML:
<option value="13">Jack</option>
value
是从集合中选择的对象的ID
。
但是,我想将整个对象作为AR对象或数组返回。例如,我希望能够得到这样的东西:
<%= f.input :parents, collection: (@node.family_tree.nodes - @node.parents - [@node]).uniq, value_method: :parents, label: "Parent 1" %>
产生这个:
<option value="[#<Node id: 36, family_tree_id: 2, created_at: "2015-01-28 23:19:28", updated_at: "2015-01-28 23:19:28", name: "Mesty", ancestry: "13/35", ancestry_depth: 0, max_tree_depth: 0>]">Resty</option>
但使用value_method: :self
并不起作用。
那么,使用这些示例,如何返回id=13
的整个节点对象,而不仅仅是13
?
答案 0 :(得分:0)
您似乎应该使用simple_form的f.association
而不是f.input
来处理关系。
请参阅https://github.com/plataformatec/simple_form#associations