【发布时间】:2014-03-05 19:29:04
【问题描述】:
我有一个简单的范围:
scope :named, ->(passed_name) { find_by(name: passed_name) }
如果作用域找到具有请求名称的条目,则按预期返回该条目:
@post1 = @user.posts.create(name: "My Post")
@post2 = @user.posts.create(name: "Some Post")
@post3 = @user.posts.create(name: "Some Other Post")
@user.posts.named("My Post") # => returns @post1
但是,如果没有找到具有请求名称的条目,则返回关联中的每个项目:
@post2 = @user.posts.create(name: "Some Post")
@post3 = @user.posts.create(name: "Some Other Post")
@user.posts.named("My Post") # => returns association with @post2 and @post3, not the expected nil
这是预期的行为吗?无论哪种方式,我可以做些什么来获得 nil 而不是完全关联?
【问题讨论】:
标签: ruby-on-rails activerecord scope