Ruby on rails 如何将分组的\u选项\u用于父/子类别的\u选择?

Ruby on rails 如何将分组的\u选项\u用于父/子类别的\u选择?,ruby-on-rails,Ruby On Rails,我有一个由acts_as_树gem管理的类别和子类别表。每个类别都有一个名称和一个父类id。我希望将它们放入如下所示的optgroup中。只能选择子项 父1 父1子1 父母1子女2 父母1子女3 家长2 父母2子女1 父母2子女2 父母2子女3 然后,该下拉列表进入posts/new.html.erb,以便将新帖子标记到一个类别 在类别表中,只有2列。类别名称和父项id 最好的方法是什么?我想到了这样的事情: <%= select_tag :category, grouped_

我有一个由acts_as_树gem管理的类别和子类别表。每个类别都有一个名称和一个父类id。我希望将它们放入如下所示的optgroup中。只能选择子项

  • 父1

    • 父1子1
    • 父母1子女2
    • 父母1子女3
  • 家长2

    • 父母2子女1
    • 父母2子女2
    • 父母2子女3
然后,该下拉列表进入posts/new.html.erb,以便将新帖子标记到一个类别

在类别表中,只有2列。类别名称和父项id

最好的方法是什么?我想到了这样的事情:

<%= select_tag :category, grouped_options_for_select(category_option_groups) %>


谢谢你的帮助

这是检索孩子的方法

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) %>


这是检索孩子的方法

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) %>


我不理解按输入参数查找的部分。我不知道应该允许哪些字段,因为列表中只有一个字段,即类别和子类别名称的category_name。我还添加了一些细节,以澄清我需要什么。谢谢你的帮助。@Joshua,这是开放的讨论,因为我不明白你是如何支持显示这些字段的。您有两个选择字段吗?一个用于父级1,一个用于父级2,分别显示P1C1、P1C2和P1C3,而另一个用于P2C1、P2C2和P2C3,或者我应该根据某种东西计算
@Parent
变量?谢谢,我不理解通过输入参数查找的部分。我不知道应该允许哪些字段,因为列表中只有一个字段,即类别和子类别名称的category_name。我还添加了一些细节,以澄清我需要什么。谢谢你的帮助。@Joshua,这是开放的讨论,因为我不明白你是如何支持显示这些字段的。您有两个选择字段吗?一个用于父级1,一个用于父级2,分别显示P1C1、P1C2和P1C3,而另一个用于P2C1、P2C2和P2C3,或者我应该根据某种东西计算
@Parent
变量?谢谢