订购不起作用

时间:2013-12-16 10:28:31

标签: ruby-on-rails-3 partial-views

我在我的Course#index方法中以几种方式定义@courses变量:

  def index
    @courses = Course.order("title")                                                                                           
    # @courses = Course.all
    # @courses = Course.paginate(page: params[:page] )
    # @courses = Course.order("subject_id").order("student_level_id")
  end 

我有一个部分视图来显示集:_course.html.slim

li
  => link_to(course.title.capitalize, course)

问题是,在显示课程集时,无论我定义@courses的方式如何,顺序都不会改变。虽然在rails console中存在顺序上的差异。

更新

这是一个courses / index.html.slim,它是Hartl教程的基本示例。

 ul.users
  = render @courses

顺便说一下,在另一个地方(在主页/static_pages/home.html.slim上),这个相同的代码片段会产生其他排序。

所以,我想知道,也许这是某种缓存问题....

可能是什么问题?提前谢谢!

1 个答案:

答案 0 :(得分:0)

我发现了我做错了什么。

定义了两个单独的@courses实例,每个实例都在两个不同的控制器中,因此我得到了答案的差异,因为只订购了一个实例。

为了保持干爽,我从控制器移动了订购

@courses = Course.order("subject_id").order("student_level_id")

到课程模型:

default_scope order: "courses.subject_id, courses.student_level_id"

并将控制器中的所有定义更改为简单的Course.all

另外,我相信我找到了我的这个问题的答案:https://stackoverflow.com/questions/20583858/default-scope-ordering-based-on-associated-models-attributes

非常感谢您的帮助!