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

时间:2015-11-09 15:17:19

标签: ruby-on-rails ruby ruby-on-rails-4

我想从rails中的多个表中获取数据,但它无效。

这是我的代码。

Category.rb

has_many :posts

post.rb

has_many :mini_posts
belongs_to :category

mini_post.rb

belongs_to :post

控制器

@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 %>

错误显示&#34;未定义的方法`mini_posts&#39;。

我该如何解决这个问题?

2 个答案:

答案 0 :(得分:3)

你的代码是链接方法,并返回迷你帖子,而不是急于加载我认为你想要的迷你帖。

你想要

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

或者

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

答案 1 :(得分:1)

更改

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

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