ruby-on-rails-3 - 从嵌套的 has_many 关系访问项目

标签 ruby-on-rails-3

我有 3 个模型:用户、学校和申请人。

用户 has_many :schools、学校 has_many :applicantsbelongs_to :user 以及申请人 belongs_to :school

我希望能够列出属于特定用户的任何学校的申请人。我想我应该能够做到这一点

current_user.schools.applicants.paginate(page: params[:page])

这不起作用,因为它给出了此错误:

undefined method `applicants' for #<ActiveRecord::Relation:0x007fb9da274110>

我如何联系这些申请人?

最佳答案

你不能像这样链接has_many关联。在用户模型上创建 has_many :through 关联:

# app/models/user.rb
has_many :applicants, :through => :schools

然后你就可以打电话了

current_user.applicants.paginate(page: params[:page])

来自guide on ActiveRecord associations :

The has_many :through association is also useful for setting up “shortcuts” through nested has_many associations. [...]

关于ruby-on-rails-3 - 从嵌套的 has_many 关系访问项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13254837/

相关文章:

ruby-on-rails - 添加图像以设计 Mailer 模板

javascript - Holder.js 和 Rails 路由?

ruby-on-rails-3 - ActiveRecord 事务不回滚

ruby-on-rails - Jruby-Rack - 找不到 Rails 引擎根路径

macos - 在 Mac OS X 上安装 Rmagick 时出错

sql-server - 带有 UUID 主键的 ActiveRecord 迁移

javascript - 如何在angularjs中加载不同的布局

ruby-on-rails - 如何在 Rails 中使用 "_blank"或 "_new"

ruby-on-rails - 标题标签在 Rails/HAML 中被转义两次

ruby-on-rails-3 - will_paginate 3.0.3 和 data-remote