ruby-on-rails – Rails包含范围

我有一个叫做作者的模型.作者有很多文章.
文章一个称为.published的范围,它的作用是:where(published:true).

我想加载作者,发表文章.
我试过了:

Author.includes(:articles.published).find(params[:author_id])

但是会抛出一个错误:undefined方法’published’.
任何想法?

解决方法

我认为最好的解决办法是:
Author.includes(:articles).where(:articles=>{published: true}).find(params[:author_id])

或者你可以创建范围:

class Author < ActiveRecord::Base 
    scope :published_articles,-> { includes(:articles).where(articles: { published: true}) }
end

接着:

Author.published_articles.find(params[:author_id].to_s)

相关文章

validates:conclusion,:presence=>true,:inclusion=>{...
一、redis集群搭建redis3.0以前,提供了Sentinel工具来监控各...
分享一下我老师大神的人工智能教程。零基础!通俗易懂!风趣...
上一篇博文 ruby传参之引用类型 里边定义了一个方法名 mo...
一编程与编程语言 什么是编程语言? 能够被计算机所识别的表...
Ruby类和对象Ruby是一种完美的面向对象编程语言。面向对象编...