【问题标题】:Rails has_many queryRails has_many 查询
【发布时间】:2013-02-16 15:05:39
【问题描述】:

我有以下型号:

类别:
has_many :sub_categories

子类别:
has_many :posts

帖子:
属于_to :sub_category

我正在尝试构建一个页面,该页面将列出带有 Pjax 选项卡的类别,每个类别选项卡将在小部件中列出它的所有子类别,每个小部件中有 5 个帖子。

问题 1:我是否需要与 Category 控制器上的 Posts 建立 has_many_through 关联才能实现这一点(以及连接表)?

问题 2:如何构建此查询?我一直在寻找一些方向

【问题讨论】:

    标签: ruby-on-rails has-many-through has-many


    【解决方案1】:

    首先,不要忘记sub_category 模型中的belongs_to :category

    你可以这样做(速度不快,所以要小心):

    @category.sub_categories.each do |sub_cat|
      sub_cat.posts.each_slice(5) do |posts|
        #here you create a widget, posts have at most 5 elements thanks to each_slice method
        posts.each do |post|
          #do something with each post
        end
      end
    end
    

    【讨论】:

    • 谢谢,是的,我确实忘记了 belongs_to :category。我把这个放在主页上,所以我需要把它放在应用程序控制器中吗?
    • 你把它放在视图中,使用<% %>,你会在你的控制器中得到@category。
    • 好的,我将 Posts 控制器路由到主页,但这需要进入 Category 控制器,对吗?如果是这样,我是否需要将其添加到应用程序控制器以便我可以在 Posts 中访问它?
    • 可以获取帖子的分类:@category = post.sub_category.category
    • 因为查询以类别开头,我应该更改根目录以转到类别索引吗?目前我在帖子中运行它,我得到:未定义的局部变量或方法`category'
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多