Rails Activerecord多表包含

coo*_*sse 5 activerecord ruby-on-rails

我有四张桌子:

与字段的争论

  • ID

评论

  • ID
  • COMMENT_ID
  • argument_id
  • 用户身份

用户

  • ID

昵称

  • ID
  • PROPOSAL_ID
  • 用户身份
  • 名称

每个论点都有很多评论,

每条评论都属于一个用户,

每个用户在参数中都有一个特定的昵称.

当我从DB获取参数注释时,我想包括每个作者的昵称.

答案是关于我不知道怎么写ActiveRecord查询.

我试过了

@argument.comments.includes(:user => :nicknames)
Run Code Online (Sandbox Code Playgroud)

但它似乎不起作用,当我通过nickname = @ argument.nicknames.find_by_user_id(comment.user.id)获得昵称时,它执行查询...

[1m[36mNickname Load (0.6ms)[0m  [1mSELECT "nicknames".* FROM "nicknames" WHERE "nicknames"."argument_id" = 59 AND "nicknames"."user_id" = 9 LIMIT 1[0m
Run Code Online (Sandbox Code Playgroud)

有什么建议吗?

Rai*_*dal 0

也许是这样的:

@argument.includes(:comments => [{ :user => :nicknames }])
Run Code Online (Sandbox Code Playgroud)

不过没试过...