Rails'ActiveRecord中,列对应的方法名末尾的问号是做什么用的?

In Rails' ActiveRecord, what does a question mark at the end of a method name corresponding to a column do?

如果 Person 是 Rails ActiveRecord class,并且 name 是字符串类型的 table 列,则 Person#name? 似乎与 name 是否真实对应。例如,如果 name 设置为空字符串,则该字符串为真,但 name? returns 为假,至少对于 Rails 3.2.x。添加问号有什么作用?

我试着搜索这个,但问号不是很适合谷歌搜索,甚至是符号搜索。

An answer to "Using question mark character in Rails/ActiveRecord column name" 提到 ActiveRecord 会自动将问号添加到字段(列?)名称,但关于它的作用存在相互矛盾的评论。

它会 return true 如果字段是 present? 或不是。所以空字符串 "" 将 return false.

问号的方法与blank?类似,但又不相同。例如,如果数值不为零,则数值将 return 为真,而 0.present? return 为 true。这是 line in the Rails source.