Rails,其中条件为非持久关联

dan*_*ans 8 activerecord ruby-on-rails

有什么办法吗?

@destination.ratings.where(:name => 'monkey')
Run Code Online (Sandbox Code Playgroud)

当没有一个模型还存在?

edg*_*ner 9

没有,但你可能只是使用普通的Ruby方法Array#select来浏览未保存的模型.

whereActiveRecord中的方法及其bandmates为数据库生成SQL查询,因此如果模型实例不在数据库中,它将找不到任何内容.

就像是

@monkey = @destination.ratings.select{|rating| rating.name == 'monkey' }.first
Run Code Online (Sandbox Code Playgroud)

可以做到这一点