2011-09-23 68 views
2

我的控制器動作是調用屬於特定用戶的所有圖像,並試圖按照其位置排序(使用acts_as_list gem),但是當我進入頁面時,圖像首先按創建日期排序,然後定位(根據導軌控制檯)。但是因爲它在創建日期之前先排序,所以我的控制器順序被忽略,這是不好的。爲什麼我的控制器沒有按照我要求的命令排序?

這裏是我的行動

def manage_tattoos 
    @tattoos = current_member.tattoos.order("position DESC") 
    end 

和我的服務器控制檯顯示:

Tattoo Load (0.6ms) SELECT `tattoos`.* FROM `tattoos` WHERE 
(`tattoos`.member_id = 1) ORDER BY tattoos.created_at DESC, position DESC 
+1

廢話我知道了,有一個default_scope設置在我的紋身模型 – rugbert

回答

0

好吧,它似乎我只是非常心不在焉,完全忘記了我在模型上設置默認範圍。拿出來,一切都很好

1

您是否嘗試過在聯想specifiing的順序?

class TodoList < ActiveRecord::Base 
    has_many :todo_items, :order => "position" 
end 
0

或指定如何處理created_at做:

current_member.tattoos.order("position DESC, created_at DESC") 
1

是否MemberTattoo之間的關聯有一個訂單條款?例如。

# Member class 
has_many :tattoos, :order => "created_at DESC" 

這是這種情況嗎?如果是這樣,您可能需要您的查詢更改爲類似:

Tattoo.where(:member_id=>current_member.id).order("position DESC") 

,我不知道的一種方式,從一個ActiveRecord協會清除訂購條款。

相關問題