我有一个由acts_as_tree gem管理的类别和子类别表。每个类别都有一个名称和一个parent_id。我希望将它们放入一个看起来像这样的optgroup。只能选择孩子。
家长1
家长2
此下拉列表会转到posts / new.html.erb,以便新帖子可以标记为某个类别。
在类别表中,只有2列。 category_name和parent_id。
最好的方法是什么?我想到了这样的事情:
<%= select_tag :category, grouped_options_for_select(category_option_groups) %>
感谢您的帮助!
答案 0 :(得分:0)
这是你检索孩子的方法。
parent1.children # => [Parent 1 Child 1, Parent 1 Child 2, Parent 1 Child 3]
parent1child1.parent # => parent1
现在在您的控制器操作中,我不知道您希望如何派生父项,因此请随意为您的案例采用最佳选项。因此,在这种情况下,我正在考虑之前会有一些操作选择父级...但我可以根据您提供的信息对此进行编辑。
class controller
def action
@parent = Category.find(input_params)
@childs = @parent.children
end
private
def input_params
params.require(:parent).permit(:firstfield, :secondfield)
end
end
这是您的选择标记
<%= select_tag 'category', options_for_select(@childs, @selected_options) %>