且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

在下拉列表中的树层次结构中显示类别/子类别

更新时间:2023-11-01 16:45:58

通过在application_helper.rb中添加这些函数解决了问题

Solved the problem by adding these functions in application_helper.rb

def subcat_prefix(depth)
  (" " * 4 * depth).html_safe
 end

 def category_options_array(current_id = 0,categories=[], parent_id=0, depth=0)
  Category.where('parent_id = ? AND id != ?', parent_id, current_id ).order(:id).each do |category|
      categories << [subcat_prefix(depth) + category.name, category.id]
      category_options_array(current_id,categories, category.id, depth+1)
  end

  categories
end

并在我看来像这样使用它们

and using them in my view like this

<%= f.select(:parent_id, options_for_select(category_options_array), {}, class: 'form-control') %>