Rails includes with scope

后端 未结 4 788
耶瑟儿~
耶瑟儿~ 2021-02-05 01:30

I have a model called Author. An author has many Articles. Articles have a scope called .published that does: where(published: true).

I want to load the author, with the

4条回答
  •  长发绾君心
    2021-02-05 01:57

    I think the best solution would be:

    Author.includes(:articles).where(:articles=>{published: true}).find(params[:author_id])
    

    Or you can create scope:

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

    and then:

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

提交回复
热议问题