我如何获得创建最后一个主题的最后一个用户

时间:2015-11-27 19:23:07

标签: ruby-on-rails ruby-on-rails-4

我有3个型号,如下所示。在我的categories / index.erb.haml中,我显示了所有类别。我有一个列,我想显示用户创建的最新主题及其名称。我在下面有一个例子。

Category
  has_many :topics
Topic
  belongs_to :category
  belongs_to :user
User
  has_many :topics

.categories
- @categories.each do |category|
    .container
        .row
            .col-md-6
                .col-md-3
                    .img
                        = image_tag('first.png')
                .col-md-9
                    %h4.category.name
                        = link_to category.name, category_path(category)
                    %p
                        = category.description
            .col-md-2
                .topic-count
                    %h1
                        = category.topics.count
                .topics
                    Topics
            .col-md-4
                .description
                    %p
                        Last topic by 'user name here' Tue Nov 28, 2015
                        'topic title here'

2 个答案:

答案 0 :(得分:1)

根据您发布的协会,您应该能够通过以下方式获取最后一个主题的用户:

Topic.last.user

另外,@marczking在评论部分提到。

Topic.last将为您提供最后创建的主题,然后Topic.last.user将为您提供相应的用户Topic模型 belongs_to a {{1 }}。为了使这项工作,您还需要在数据库的User表中有一个user_id列。

答案 1 :(得分:1)

如果您希望获得每个Topic的最后Category,则必须循环遍历Categories并获得最后Topic,因为您有关系。< / p>

Category.includes(:topics).find_each do |category|
  last_topic_of_the_category = category.topics.last  # <= The last topic
end