祖先:从范围跳过元素

时间:2012-09-07 13:23:14

标签: ruby-on-rails activerecord ancestry

使用宝石血统。

如何从Category :: ActiveRecordRelation中跳过self元素或者需要使用范围?

= simple_form_for @category do |f|
  = f.input :parent_id, collection: Category.roots 

类似的东西:

= f.input :parent_id, collection: Category.roots.except(@category)

1 个答案:

答案 0 :(得分:2)

= f.input :parent_id, collection: Category.roots.where("id <> ?", @category.id)

或通过范围

category.rb

scope :except, lambda{ |category| where("id <> ?", category.id) }

然后

= f.input :parent_id, collection: Category.roots.except(@category)