我的控制器中的def有问题
def wait
@evaluations3 = Affiliation.where("go_auth =true") and Affiliation.evaluation.where("ready = false")
我想只显示附属于这两个条件=真实
答案 0 :(得分:0)
从我所看到的,你有一个控制器,其中index
是一个动作。
在操作中,您有几个模型,您在其上调用where
查询。
此外,您希望显示对象,其中Affiliation.where("go_auth =true") and Evaluation.where("ready = false")
位于索引操作中。
查看Active record query interface的联接。它可能会为您提供方向。
IMO,你必须尝试将你的Affiliation.where("go_auth =true") || Evaluation.where("ready = false")
推入模型中/创建一个同样的PORO。这将有助于您保持控制器的理智。
答案 1 :(得分:0)
目前还不清楚你想做什么,但如果情况如下:
class Affiliation < ActiveRecord::Base
belongs_to :evaluation
#fields - go_auth: boolean
class Evaluation < ActiveRecord::Base
has_many :affiliations
#fields - ready: boolean
并且你想加载Affiations,其中go_auth为true且相关评估的ready字段为true,那么我认为这应该有效
@affiliations = Affiliation.include(:evaluation).where(["go_auth = ? and evaluations.ready = ?", true, true])
如果这些不是您的要求,请说明它们是什么。
答案 2 :(得分:0)
这解决了我的问题
def wait
@evaluations3 = Evaluation.includes(:affiliation).where("go_auth = true").where("ready = false").references(:affiliation)
端