2011-08-30 63 views
0

我需要根據他們的狀態對他們進行排序,而不管他們是否被選中。Formtastic Collection Sorting

我的設置看起來類似於以下

# user.rb 
class User 
    has_and_belongs_to_many :colours 
end 

'

# colour.rb 
class Colour 
    has_and_belongs_to_many :users 

    scope :ordered_for, lambda { |user| 
    all.sort_by { |s| include? user ? 1 : 0 } 
    } 
end 

'

# _form.html.haml 
= semantic_form_for(@user) do |f| 
    = f.input :colours, :as => :check_boxes, :collection => Colour.ordered_for(current_user) 

ordered_for返回一個良好有序陣列。事實上,formtastic事後破壞了這個命令,並且通過id對顏色進行排序。

什麼是更好的方法來取代這種行爲?有沒有更聰明的方法通過選擇來實現訂單?

在此先感謝!

回答

-1

請嘗試:

Colour.ordered_for(current_user).all 
+0

這就是我做OO – pex