我使用cancan,并且在ability.rb -
中有以下内容can :contribute, Book do |book|
book.contributions.where(user_id: user.id)
end
无论where查询是否返回任何匹配,Ruby都会将其评估为true。如何让查询正确评估为false?这甚至是康康的正确方法吗?
答案 0 :(得分:1)
对返回的记录使用any?
方法
book.contributions.where(user_id: user.id)
将返回[](空数组)
book.contributions.where(user_id: user.id).any?
将返回true
,否则会false
答案 1 :(得分:0)
使用:book.contributions.where(user_id: user.id).exists?