Joh*_*vda 3 ruby-on-rails ruby-on-rails-3
我有一个下拉列表,其中填充了使用祖先的表中的数据.
我想在列表中排列数据,以便将条目与其兄弟姐妹以及父母一起分组.
此代码有效,但不排列条目:
<%= builder.select("id", Location.all.collect {|l| [ l.name_nb, l.id ] }, { :include_blank => true }) %>
我试过这一行:
<%= builder.select("id", Location.arrange.collect {|l| [ l.name_nb, l.id ] }, { :include_blank => true }) %>
然后我得到消息:未定义的方法`name_nb'为#
我究竟做错了什么?我该如何安排参赛作品?
Mik*_*kin 12
在我的应用程序中,我有4个深度级别模型.这是我用于下拉列表的代码.
控制器:
before_filter :collection_for_parent_select, :except => [:index, :show]
def collection_for_parent_select
@categories = ancestry_options(Category.unscoped.arrange(:order => 'name')) {|i| "#{'-' * i.depth} #{i.name}" }
end
def ancestry_options(items)
result = []
items.map do |item, sub_items|
result << [yield(item), item.id]
#this is a recursive call:
result += ancestry_options(sub_items) {|i| "#{'-' * i.depth} #{i.name}" }
end
result
end
Run Code Online (Sandbox Code Playgroud)
查看,haml和formtastics:
= f.input :parent_id, :as => :select, :collection => @categories
Run Code Online (Sandbox Code Playgroud)
PS我知道这不是有效的解决方案,但它有效.另外看看祖先维基
| 归档时间: |
|
| 查看次数: |
4159 次 |
| 最近记录: |