简体   繁体   English

如何从Rails中的多个表关联中获取数据?

[英]How can I get data from multiple table association in rails?

I want to get data from multiple table in rails,but it is not working. 我想从Rails的多个表中获取数据,但是它不起作用。

Here is my code. 这是我的代码。

Category.rb Category.rb

has_many :posts

post.rb post.rb

has_many :mini_posts
belongs_to :category

mini_post.rb mini_post.rb

belongs_to :post

controller 控制者

@posts = Category.find(params[:id]).posts.mini_posts

viewfile 查看文件

<% @posts.each do |post| %>
    <%= post.title %>
    <%= post.description %>
  <% post.mini_posts.each do |mpost| %>
    <%= mpost.name %>
    <%= mpost.experience %>
  <% end %>
<% end %>

The error shows "undefined method `mini_posts'. 错误显示“未定义的方法'mini_posts'。

How can I solve this? 我该如何解决?

Your code is chaining methods, and returning mini posts, not eager loading the mini posts which is what I assume you want. 您的代码是链接方法,并返回迷你帖子,而不是急于加载迷你帖子,这是我认为您想要的。

You want either 你想要

@posts = Post.includes(:mini_posts).where(category_id: params[:id])

Or 要么

@category = Category.includes(posts: :mini_posts).find(params[:id])
@posts = @category.posts

Change 更改

@posts = Category.find(params[:id]).posts.mini_posts

to

@posts = Category.find(params[:id]).posts

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM