如果声明错误的论点,.exists之间的区别?和.any?

时间:2016-06-16 20:18:37

标签: ruby-on-rails

在模型link中如果有if语句:<% if link.title == Link.any?(:title) %>当我运行它时,我收到错误:wrong number of arguments (1 for 0)我明白这意味着它意味着它不是得到Link.any?(:title)的任何东西但是我该如何解决这个问题。如果您不理解我想要完成的任务,我正在努力确保我所创建的链接与其他链接没有相同的标题。

另一方面,.exists之间有什么区别?和.any?

1 个答案:

答案 0 :(得分:0)

Enumerable#any?接受一个阻止并返回truefalse,具体取决于该块是否为该集合的任何成员返回真值:

http://ruby-doc.org/core-2.2.3/Enumerable.html#method-i-any-3F

#exists?ActiveRecord方法,如果存在与查询匹配的一条或多条记录,则返回true

http://apidock.com/rails/ActiveRecord/Base/exists%3F/class

因此,出于您的目的,您可以尝试以下方式:

<% if Link.where(title: link.title).exists? %>