首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >def索引如何找到forum_id

def索引如何找到forum_id
EN

Stack Overflow用户
提问于 2015-10-29 12:51:02
回答 2查看 349关注 0票数 1

我有个小论坛。我有模特论坛,主题,帖子。我想在每个论坛上展示最后一个话题。

这是我的模特

app/models/forum.rb

代码语言:javascript
复制
class Forum < ActiveRecord::Base
 has_many :topics
end

app/models/topic.rb

代码语言:javascript
复制
class Topic < ActiveRecord::Base
 belongs_to :forum
end

app/控制器/论坛_控制器。

代码语言:javascript
复制
def index
    @forums = Forum.all
    @topics = Topic.all
    @topic = @topics.last_topics
end

app/views/论坛/index.html.slm

代码语言:javascript
复制
- @forums.each do |forum|           
    tr.dotted                      
        td.yach 
            = image_tag('forumico.png') 
            u = link_to forum.name, forum_path(forum)   
            br
            p = forum.desc
        td = forum.topics.count 
        td = forum.views_count
        td 
            = distance_of_time_in_words_to_now forum.updated_at
            |  назад
            - @topic.each do |topic|
                = topic.name

        td 

在浏览器上我看到每个论坛的最后一个话题.

示例:

代码语言:javascript
复制
 Forum_list                            Last_topic
 Forum_name 1                           topic#9
 Forum_name 2                           topic#9
 Forum_name 3                           topic#9

我想要的:

代码语言:javascript
复制
  Forum_list                            Last_topic
 Forum_name 1                           topic#9
 Forum_name 2                           topic#23
 Forum_name 3                           topic#76

该怎么做呢?Thx

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-10-29 13:23:09

根据has_many关系,forum.topics得到了特定主题的所有主题,forum.topics.last.name得到了最后一个主题的名称。

代码语言:javascript
复制
- @forums.each do |forum|           
    tr.dotted                      
      td.yach 
        = image_tag('forumico.png') 
        u = link_to forum.name, forum_path(forum)   
        br
        p = forum.desc
    td = forum.topics.count
    td = forum.views_count
    td 
        = distance_of_time_in_words_to_now forum.updated_at
        |  назад
        - forum.topics.last.name if forum.topics.any?

    td 
票数 0
EN

Stack Overflow用户

发布于 2015-10-29 12:58:39

您需要在协会topics之间使用forums

代码语言:javascript
复制
#app/models/forum.rb
class Forum < ActiveRecord::Base
   has_many :topics
end

#app/models/topic.rb
class Topic < ActiveRecord::Base
   belongs_to :forum
   scope :latest, ->(limit = 1) { order(created_at: :desc).limit(limit) } 
end

这样,您可以调用以下命令:

代码语言:javascript
复制
#app/controllers/forums_controller.rb
class ForumsController < ApplicationController
   def index
      @forums = Forum.all
   end
end

#app/views/forums/index.html.erb
<% @forum.each do |forum| %>
   <% forum.topics.latest do |topic| %>
      <%= topic.title %>
   <% end %>
<% end %>
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33414787

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档