2015-08-08 113 views
2

我是rails begginer。Ruby on Rails - 通过has_many关系的字段排序对象

如何加载具有以下条件的数据库。

我想表明,comment.created_at DESC

schema.rb

create_table "comments", force: :cascade do |t| 
    t.text  "content" 
    t.integer "user_id" 
    t.integer "lecture_id" 
    t.datetime "created_at",    null: false 
    t.datetime "updated_at",    null: false 
    t.integer "likedcount", default: 0 
    end 

    create_table "lectures", force: :cascade do |t| 
    t.string "subject" 
    t.string "professor" 
    t.string "major" 
    t.datetime "created_at",    null: false 
    t.datetime "updated_at",    null: false 
    t.integer "uptachi", default: 0 
    t.integer "hatachi", default: 0 
    end 

lecture.rb

has_many :comments 

comment.rb

belongs_to: lectures 
+0

问题的标题根本不明确,那么“按has_many关系的字段排序对象”怎么样(并且确实有更好的可能性,但一切都比“rails howto”更好) 。 – Felix

+0

谢谢!我编辑 –

回答

3
有秩序的讲座列表

你需要把它写成:

has_many :comments, -> { order("comments.created_at DESC") } 

根据OP的评论,看起来,他想要的是一个命名的范围。就像

scope :order_by_comments, -> { joins(:comments).order("comments.created_at DESC") } 
+0

@ lectures = Lecture.paginate(:page => params [:page],::per_page => 10) –

+0

<%= will_paginate @lectures%> –

+0

没有变化...帮我.. –