我有 3 个模型:用户、学校和申请人。
用户 has_many :schools
、学校 has_many :applicants
和 belongs_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/