ruby-on-rails - Rails 3 查找所有关联记录 has_many :through

标签 ruby-on-rails ruby model associations

我想列出与某个特定类别和类(class)相关的所有帖子。

我有:

class Post < ActiveRecord::Base
  has_many :category_posts
  has_many :categories, :through => :category_posts
  has_many :classroom_posts
  has_many :classrooms, :through => :classroom_posts
end

class Category < ActiveRecord::Base
  has_many :category_posts
  has_many :posts, :through => :category_posts
end

class CategoryPost < ActiveRecord::Base
  belongs_to :category
  belongs_to :post
end

class Classroom < ActiveRecord::Base
  has_many :classroom_posts
  has_many :posts, :through => :classroom_posts
end

class ClassroomPost < ActiveRecord::Base
  belongs_to :classroom
  belongs_to :post
end

我想做这样的事

Post.where(["category.id = ? AND classroom.id = ?", params[:category_id], params[:classroom_id]])

这确实是一个非常简单的任务,但我不知道我应该寻找什么(关键字)。

this一样的问题, 但在 rails 上。

编辑: 我在问题中添加了更多细节。 这有效,但前提是我同时指定了两个参数。女巫并不总是这样——我不知道会指定什么参数。

Post.joins(:categories, :classrooms).where(["categories.id = ? AND classrooms.id = ?", params[:classroom_id], params[:category_id]])

最佳答案

Category.find(params[:category_id]).posts

另请参阅指南:

关于ruby-on-rails - Rails 3 查找所有关联记录 has_many :through,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2798742/

相关文章:

javascript - 了解 Rails 下的 html 标签以使用 Javascript 验证表单

ruby - 从 Mac OS 中的 ri(ruby 文档查看器)退出

html - Bootstrap 嵌套下拉列表

php - 模型保存或更新时 Laravel 尾随数据异常

ruby-on-rails - will_paginate 路由仅适用于 > 1 页

ruby-on-rails - 警告:constant::Fixnum 在生成新模型时被弃用

ruby - 在 ruby​​ 中使用 sql loader

model-view-controller - 集成 Ext.grid.panel 验证和 Ext.data.Model.validations

sql - GORM域映射问题

ruby-on-rails - RSpec 在 controller_spec 中将对象作为参数传递