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.
如果 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.