我想从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;。
我该如何解决这个问题?
答案 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