2011-09-23 64 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协会清除订购条款。

相关问题