与ancestry gem创建has_many关联

时间:2014-07-16 18:07:33

标签: ruby-on-rails ruby-on-rails-3 ruby-on-rails-4 ruby-on-rails-3.2 ancestry

我安装了祖先宝石&创建位置结构。

  • 阿拉斯加
  • 加利福尼亚
    • 洛杉矶
    • 弗雷斯诺
    • Cincotta(弗雷斯诺)
    • 哈蒙德(弗雷斯诺)
      • 梅尔文(弗雷斯诺)
        • Melvin 1
        • Melvin 2
        • Melvin 3
  • 亚利桑那
  • 科罗拉多

我的帖子和位置模型

class Location < ActiveRecord::Base
 include Tree
 has_many :posts
end

class Post < ActiveRecord::Base
  belongs_to :location
end

当我添加新帖子时,如何只显示深度4级别( Melvin 1,Melvin 2,Melvin 3 )作为下拉列表。

1 个答案:

答案 0 :(得分:1)

您必须启用cache depth才能使用at_depth

Location.all.at_depth(4)

这可以用于呈现select输入元素:

<%= select :location_id, Location.all.at_depth(4) { |l| [ l.name, l.id ] } %>